Module: Maestrano::Connector::Rails::Concerns::ComplexEntity
- Extended by:
- ActiveSupport::Concern
- Included in:
- Maestrano::Connector::Rails::ComplexEntity
- Defined in:
- app/models/maestrano/connector/rails/concerns/complex_entity.rb
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
-
#connec_model_to_external_model(connec_hash_of_entities) ⇒ Object
input : { connec_entities_names: [unmapped_connec_entitiy1, unmapped_connec_entitiy2], connec_entities_names: [unmapped_connec_entitiy3, unmapped_connec_entitiy4] } output : { connec_entities_names: { external_entities_names: [unmapped_connec_entitiy1, unmapped_connec_entitiy2] }, connec_entities_names: { external_entities_names: [unmapped_connec_entitiy3], external_entities_names: [unmapped_connec_entitiy4] } }.
- #consolidate_and_map_connec_entities(modelled_connec_entities, modelled_external_entities) ⇒ Object
- #consolidate_and_map_data(connec_entities, external_entities) ⇒ Object
- #consolidate_and_map_external_entities(modelled_external_entities) ⇒ Object
-
#external_model_to_connec_model(external_hash_of_entities) ⇒ Object
input : { external_entities_names: [unmapped_external_entity1}, unmapped_external_entity2], external_entities_names: [unmapped_external_entity3}, unmapped_external_entity4] } output : { external_entities_names: { connec_entities_names: [unmapped_external_entity1], connec_entities_names: [unmapped_external_entity2] }, external_entities_names: { connec_entities_names: [unmapped_external_entity3, unmapped_external_entity4] } }.
-
#get_connec_entities(last_synchronization_date = nil) ⇒ Object
————————————————————- Entity equivalent methods ————————————————————-.
- #get_external_entities_wrapper(last_synchronization_date = nil, entity_name = '') ⇒ Object
- #instantiate_sub_entity_instance(entity_name) ⇒ Object
-
#push_entities_to_connec(mapped_external_entities_with_idmaps) ⇒ Object
input : { external_entities_names: { connec_entities_names: [mapped_external_entity1], connec_entities_names: [mapped_external_entity2] }, external_entities_names: { connec_entities_names: [mapped_external_entity3, mapped_external_entity4] } }.
- #push_entities_to_external(mapped_connec_entities_with_idmaps) ⇒ Object
Instance Method Details
#connec_model_to_external_model(connec_hash_of_entities) ⇒ Object
input : {
connec_entities_names[0]: [unmapped_connec_entitiy1, unmapped_connec_entitiy2],
connec_entities_names[1]: [unmapped_connec_entitiy3, unmapped_connec_entitiy4]
}
output : {
connec_entities_names[0]: {
external_entities_names[0]: [unmapped_connec_entitiy1, unmapped_connec_entitiy2]
},
connec_entities_names[1]: {
external_entities_names[0]: [unmapped_connec_entitiy3],
external_entities_names[1]: [unmapped_connec_entitiy4]
}
}
66 67 68 |
# File 'app/models/maestrano/connector/rails/concerns/complex_entity.rb', line 66 def connec_model_to_external_model(connec_hash_of_entities) raise 'Not implemented' end |
#consolidate_and_map_connec_entities(modelled_connec_entities, modelled_external_entities) ⇒ Object
120 121 122 123 124 125 126 127 128 129 130 |
# File 'app/models/maestrano/connector/rails/concerns/complex_entity.rb', line 120 def consolidate_and_map_connec_entities(modelled_connec_entities, modelled_external_entities) modelled_connec_entities.each do |connec_entity_name, entities_in_external_model| entities_in_external_model.each do |external_entity_name, entities| sub_entity_instance = instantiate_sub_entity_instance(self.class.formatted_connec_entities_names[connec_entity_name]) equivalent_external_entities = (modelled_external_entities[external_entity_name] && modelled_external_entities[external_entity_name][connec_entity_name]) || [] entities_in_external_model[external_entity_name] = sub_entity_instance.consolidate_and_map_connec_entities(entities, equivalent_external_entities, sub_entity_instance.class.references[external_entity_name] || [], external_entity_name) end end modelled_connec_entities end |
#consolidate_and_map_data(connec_entities, external_entities) ⇒ Object
110 111 112 113 114 115 116 117 118 |
# File 'app/models/maestrano/connector/rails/concerns/complex_entity.rb', line 110 def consolidate_and_map_data(connec_entities, external_entities) modelled_external_entities = external_model_to_connec_model(external_entities) modelled_connec_entities = connec_model_to_external_model(connec_entities) mapped_connec_entities = consolidate_and_map_connec_entities(modelled_connec_entities, modelled_external_entities) mapped_external_entities = consolidate_and_map_external_entities(modelled_external_entities) {connec_entities: mapped_connec_entities, external_entities: mapped_external_entities} end |
#consolidate_and_map_external_entities(modelled_external_entities) ⇒ Object
132 133 134 135 136 137 138 139 140 141 |
# File 'app/models/maestrano/connector/rails/concerns/complex_entity.rb', line 132 def consolidate_and_map_external_entities(modelled_external_entities) modelled_external_entities.each do |external_entity_name, entities_in_connec_model| entities_in_connec_model.each do |connec_entity_name, entities| sub_entity_instance = instantiate_sub_entity_instance(self.class.formatted_external_entities_names[external_entity_name]) entities_in_connec_model[connec_entity_name] = sub_entity_instance.consolidate_and_map_external_entities(entities, connec_entity_name) end end modelled_external_entities end |
#external_model_to_connec_model(external_hash_of_entities) ⇒ Object
input :
external_entities_names[0]: [unmapped_external_entity1, unmapped_external_entity2],
external_entities_names[1]: [unmapped_external_entity3}, unmapped_external_entity4]
}
output : {
external_entities_names[0]: {
connec_entities_names[0]: [unmapped_external_entity1],
connec_entities_names[1]: [unmapped_external_entity2]
},
external_entities_names[1]: {
connec_entities_names[0]: [unmapped_external_entity3, unmapped_external_entity4]
}
}
83 84 85 |
# File 'app/models/maestrano/connector/rails/concerns/complex_entity.rb', line 83 def external_model_to_connec_model(external_hash_of_entities) raise 'Not implemented' end |
#get_connec_entities(last_synchronization_date = nil) ⇒ Object
90 91 92 93 94 95 96 97 98 |
# File 'app/models/maestrano/connector/rails/concerns/complex_entity.rb', line 90 def get_connec_entities(last_synchronization_date = nil) entities = ActiveSupport::HashWithIndifferentAccess.new self.class.formatted_connec_entities_names.each do |connec_entity_name, connec_class_name| sub_entity_instance = instantiate_sub_entity_instance(connec_class_name) entities[connec_entity_name] = sub_entity_instance.get_connec_entities(last_synchronization_date) end entities end |
#get_external_entities_wrapper(last_synchronization_date = nil, entity_name = '') ⇒ Object
100 101 102 103 104 105 106 107 108 |
# File 'app/models/maestrano/connector/rails/concerns/complex_entity.rb', line 100 def get_external_entities_wrapper(last_synchronization_date = nil, entity_name = '') entities = ActiveSupport::HashWithIndifferentAccess.new self.class.formatted_external_entities_names.each do |external_entity_name, external_class_name| sub_entity_instance = instantiate_sub_entity_instance(external_class_name) entities[external_entity_name] = sub_entity_instance.get_external_entities_wrapper(last_synchronization_date, external_entity_name) end entities end |
#instantiate_sub_entity_instance(entity_name) ⇒ Object
170 171 172 |
# File 'app/models/maestrano/connector/rails/concerns/complex_entity.rb', line 170 def instantiate_sub_entity_instance(entity_name) self.class.instantiate_sub_entity_instance(entity_name, @organization, @connec_client, @external_client, @opts) end |
#push_entities_to_connec(mapped_external_entities_with_idmaps) ⇒ Object
input : {
external_entities_names[0]: {
connec_entities_names[0]: [mapped_external_entity1],
connec_entities_names[1]: [mapped_external_entity2]
},
external_entities_names[1]: {
connec_entities_names[0]: [mapped_external_entity3, mapped_external_entity4]
}
}
152 153 154 155 156 157 158 159 |
# File 'app/models/maestrano/connector/rails/concerns/complex_entity.rb', line 152 def push_entities_to_connec(mapped_external_entities_with_idmaps) mapped_external_entities_with_idmaps.each do |external_entity_name, entities_in_connec_model| sub_entity_instance = instantiate_sub_entity_instance(self.class.formatted_external_entities_names[external_entity_name]) entities_in_connec_model.each do |connec_entity_name, mapped_entities_with_idmaps| sub_entity_instance.push_entities_to_connec_to(mapped_entities_with_idmaps, connec_entity_name) end end end |
#push_entities_to_external(mapped_connec_entities_with_idmaps) ⇒ Object
161 162 163 164 165 166 167 168 |
# File 'app/models/maestrano/connector/rails/concerns/complex_entity.rb', line 161 def push_entities_to_external(mapped_connec_entities_with_idmaps) mapped_connec_entities_with_idmaps.each do |connec_entity_name, entities_in_external_model| sub_entity_instance = instantiate_sub_entity_instance(self.class.formatted_connec_entities_names[connec_entity_name]) entities_in_external_model.each do |external_entity_name, mapped_entities_with_idmaps| sub_entity_instance.push_entities_to_external_to(mapped_entities_with_idmaps, external_entity_name) end end end |