Module: Legion::Extensions::Synapse::Helpers::RelationshipWrapper

Defined in:
lib/legion/extensions/synapse/helpers/relationship_wrapper.rb

Class Method Summary collapse

Class Method Details

.unwrap(synapse_id) ⇒ Object



30
31
32
33
34
35
36
37
38
# File 'lib/legion/extensions/synapse/helpers/relationship_wrapper.rb', line 30

def unwrap(synapse_id)
  Data::Model.define_synapse_model
  synapse = Data::Model::Synapse[synapse_id]
  return { success: false, error: 'synapse not found' } unless synapse
  return { success: false, error: 'not a wrapped relationship' } unless synapse.relationship_id

  synapse.destroy
  { success: true, relationship_id: synapse.relationship_id }
end

.wrap(relationship) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/legion/extensions/synapse/helpers/relationship_wrapper.rb', line 12

def wrap(relationship)
  Data::Model.define_synapse_model
  existing = Data::Model::Synapse.where(relationship_id: relationship[:id]).first
  return existing if existing

  Data::Model::Synapse.create(
    source_function_id: relationship[:trigger_function_id],
    target_function_id: relationship[:function_id],
    relationship_id:    relationship[:id],
    attention:          relationship[:conditions],
    transform:          relationship[:transformation],
    routing_strategy:   'direct',
    origin:             'explicit',
    confidence:         Confidence.starting_score(:explicit),
    status:             'active'
  )
end