finished relation completer
This commit is contained in:
+38
-15
@@ -11,17 +11,38 @@
|
||||
#include "work/admin/UserSession.hpp"
|
||||
|
||||
#include "work/jobs/Job.hpp"
|
||||
#include "work/jobs/Task.hpp""
|
||||
#include "work/jobs/Task.hpp"
|
||||
#include "work/jobs/Payload.hpp"
|
||||
#include "work/jobs/IdPayload.hpp"
|
||||
#include "work/jobs/IdListPayload.hpp"
|
||||
|
||||
#include "matador/utils/default_type_traits.hpp"
|
||||
#include "matador/object/schema.hpp"
|
||||
|
||||
#include "matador/sql/connection.hpp"
|
||||
|
||||
#include "matador/orm/session.hpp"
|
||||
|
||||
template <> struct matador::utils::data_type_traits<work::core::timestamp, void> {
|
||||
static basic_type type(std::size_t /*size*/) { return basic_type::type_uint64; }
|
||||
static void read_value(attribute_reader &reader, const char *id, size_t index, nullptr_t &/*value*/) {
|
||||
|
||||
}
|
||||
static void bind_value(attribute_writer &binder, size_t index, nullptr_t &/*value*/) {
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
template <> struct matador::utils::data_type_traits<work::core::UserInfo, void> {
|
||||
static basic_type type(std::size_t /*size*/) { return basic_type::type_uint64; }
|
||||
static void read_value(attribute_reader &reader, const char *id, size_t index, nullptr_t &/*value*/) {
|
||||
|
||||
}
|
||||
static void bind_value(attribute_writer &binder, size_t index, nullptr_t &/*value*/) {
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
using namespace matador;
|
||||
using namespace work::models;
|
||||
|
||||
@@ -51,36 +72,38 @@ using namespace work::models;
|
||||
int main() {
|
||||
object::schema schema("Administration");
|
||||
|
||||
auto result = schema.attach<admin::CollectionCenter>("collection_center")
|
||||
auto result = schema.attach<admin::CollectionCenter>("collection_centers")
|
||||
.and_then([&schema] { return schema.attach<admin::UserDirectory>("user_directories"); })
|
||||
.and_then([&schema] { return schema.attach<admin::LdapGroupSchemaSettings>("ldap_group_schema_settings"); })
|
||||
.and_then([&schema] { return schema.attach<admin::LdapImportSettings>("ldap_import_settings"); })
|
||||
.and_then([&schema] { return schema.attach<admin::LdapUserSchemaSettings>("ldap_user_schema_settings"); })
|
||||
.and_then([&schema] { return schema.attach<admin::UserDirectory, admin::InternalUserDirectory>("internal_user_directories"); })
|
||||
.and_then([&schema] { return schema.attach<admin::UserDirectory, admin::LdapUserDirectory>("ldap_user_directories"); } )
|
||||
.and_then([&schema] { return schema.attach<admin::InternalUserDirectory, admin::UserDirectory>("internal_user_directories"); })
|
||||
.and_then([&schema] { return schema.attach<admin::LdapUserDirectory, admin::UserDirectory>("ldap_user_directories"); } )
|
||||
.and_then([&schema] { return schema.attach<admin::LoginHistory>("login_histories"); })
|
||||
.and_then([&schema] { return schema.attach<admin::Scenario>("scenarios"); })
|
||||
.and_then([&schema] { return schema.attach<admin::User>("users"); })
|
||||
.and_then([&schema] { return schema.attach<admin::UserSession>("user_sessions"); })
|
||||
.and_then([&schema] { return schema.attach<jobs::Job>("jobs"); })
|
||||
.and_then([&schema] { return schema.attach<jobs::Payload>("payloads"); })
|
||||
.and_then([&schema] { return schema.attach<jobs::Payload, jobs::IdPayload>("id_list_payloads"); })
|
||||
.and_then([&schema] { return schema.attach<jobs::Payload, jobs::IdListPayload>("id_payloads"); })
|
||||
.and_then([&schema] { return schema.attach<jobs::IdPayload, jobs::Payload>("id_list_payloads"); })
|
||||
.and_then([&schema] { return schema.attach<jobs::IdListPayload, jobs::Payload>("id_payloads"); })
|
||||
.and_then([&schema] { return schema.attach<jobs::Task>("tasks"); });
|
||||
|
||||
if (!result.is_ok()) {
|
||||
std::cout << "error: " << result.err().message() << std::endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
const std::string dns{"sqlite://demo.db"};
|
||||
sql::connection c(dns);
|
||||
|
||||
result = c.open();
|
||||
|
||||
// orm::session s()
|
||||
if (!result.is_ok()) {
|
||||
return 0;
|
||||
}
|
||||
schema.dump(std::cout);
|
||||
// const std::string dns{"sqlite://demo.db"};
|
||||
// sql::connection c(dns);
|
||||
//
|
||||
// result = c.open();
|
||||
//
|
||||
// // orm::session s()
|
||||
// if (!result.is_ok()) {
|
||||
// return 0;
|
||||
// }
|
||||
|
||||
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user