relation_completer progress
This commit is contained in:
+33
-10
@@ -25,24 +25,47 @@
|
||||
using namespace matador;
|
||||
using namespace work::models;
|
||||
|
||||
// Proposal for polymorphic classes:
|
||||
// object_ptr::as<Type> does the following checks;
|
||||
//
|
||||
// 1. The requested type has super class
|
||||
// 2. Super class has discriminator column defined
|
||||
// 3. Super class has discriminator value defined
|
||||
// 4. Discriminator value is mapped to the requested type
|
||||
//
|
||||
// If all checks succeed, the requested is fetched from
|
||||
// the database.
|
||||
// schema.attach<jobs::Payload>("payloads", make_polymorph("type"));
|
||||
// schema.attach<jobs::Payload, jobs::IdPayload>("id_list_payloads", make_polymorph_type("IdPayload"));
|
||||
// schema.attach<jobs::Payload, jobs::IdListPayload>("id_payloads"make_polymorph_type("IdListPayload"));
|
||||
// object::object_ptr<jobs::Payload> payload;
|
||||
// auto result = payload.as<jobs::IdPayload>();
|
||||
// if (result.is_ok()) {
|
||||
// const auto& is_payload = result.value();
|
||||
// // Use requested type
|
||||
// id_payload->id = 1;
|
||||
// }
|
||||
// payload.is_polymorphic();
|
||||
// payload.is_polymorphic_type<jobs::IdPayload>();
|
||||
|
||||
int main() {
|
||||
object::schema schema("Administration");
|
||||
|
||||
auto result = schema.attach<admin::CollectionCenter>("collection_center")
|
||||
.and_then([&schema] { return schema.attach<admin::InternalUserDirectory>("internal_user_directory"); })
|
||||
.and_then([&schema] { return schema.attach<admin::InternalUserDirectory>("internal_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::LdapUserDirectory>("ldap_user_directory"); } )
|
||||
.and_then([&schema] { return schema.attach<admin::LdapUserDirectory>("ldap_user_directories"); } )
|
||||
.and_then([&schema] { return schema.attach<admin::LdapUserSchemaSettings>("ldap_user_schema_settings"); })
|
||||
.and_then([&schema] { return schema.attach<admin::LoginHistory>("login_history"); })
|
||||
.and_then([&schema] { return schema.attach<admin::Scenario>("scenario"); })
|
||||
.and_then([&schema] { return schema.attach<admin::User>("user"); })
|
||||
.and_then([&schema] { return schema.attach<admin::UserDirectory>("user_directory"); })
|
||||
.and_then([&schema] { return schema.attach<admin::UserSession>("user_session"); })
|
||||
.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::UserDirectory>("user_directories"); })
|
||||
.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>("id_payloads"); })
|
||||
.and_then([&schema] { return schema.attach<jobs::IdPayload>("id_list_payloads"); })
|
||||
.and_then([&schema] { return schema.attach<jobs::IdListPayload>("payloads"); })
|
||||
.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::Task>("tasks"); });
|
||||
|
||||
if (!result.is_ok()) {
|
||||
|
||||
Reference in New Issue
Block a user