Class: Factor::Connector::ServiceInstance

Inherits:
Instance
  • Object
show all
Defined in:
lib/instances/service_instance.rb

Instance Attribute Summary collapse

Attributes inherited from Instance

#instance_id

Instance Method Summary collapse

Methods inherited from Instance

#debug, #error, #id, #info, #log, #respond, #warn

Constructor Details

#initialize(options = {}) ⇒ ServiceInstance

Returns a new instance of ServiceInstance.



22
23
24
25
26
27
# File 'lib/instances/service_instance.rb', line 22

def initialize(options = {})
  @listener_instances = {}
  @action_instances   = {}
  @instance_id        = SecureRandom.hex
  super(options)
end

Instance Attribute Details

#action_instances ⇒ Object

Returns the value of attribute action_instances.



20
21
22
# File 'lib/instances/service_instance.rb', line 20

def action_instances
  @action_instances
end

#callback ⇒ Object

Returns the value of attribute callback.



20
21
22
# File 'lib/instances/service_instance.rb', line 20

def callback
  @callback
end

#definition ⇒ Object

Returns the value of attribute definition.



20
21
22
# File 'lib/instances/service_instance.rb', line 20

def definition
  @definition
end

#listener_instances ⇒ Object

Returns the value of attribute listener_instances.



20
21
22
# File 'lib/instances/service_instance.rb', line 20

def listener_instances
  @listener_instances
end

#step_data ⇒ Object

Returns the value of attribute step_data.



20
21
22
# File 'lib/instances/service_instance.rb', line 20

def step_data
  @step_data
end

Instance Method Details

#call_action(action_id, params) ⇒ Object



34
35
36
37
38
39
40
41
42
# File 'lib/instances/service_instance.rb', line 34

def call_action(action_id,params)
  action_instance = ActionInstance.new
  action_instance.service_id  = self.id
  action_instance.instance_id = @instance_id
  action_instance.definition  = @definition.actions[action_id]
  action_instance.callback    = @callback
  action_instances[action_id] = action_instance
  action_instance.async.start(params)
end

#call_hook(listener_id, hook_id, data, request, response) ⇒ Object



29
30
31
32
# File 'lib/instances/service_instance.rb', line 29

def call_hook(listener_id,hook_id,data,request,response)
  listener_instance = @listener_instances[listener_id]
  listener_instance.async.call_web_hook(hook_id,data,request,response)
end

#has_action?(action_id) ⇒ Boolean

Returns:

  • (Boolean)


72
73
74
# File 'lib/instances/service_instance.rb', line 72

def has_action?(action_id)
  @definition.actions.include?(action_id)
end

#has_listener?(listener_id) ⇒ Boolean

Returns:

  • (Boolean)


76
77
78
# File 'lib/instances/service_instance.rb', line 76

def has_listener?(listener_id)
  @definition.listeners.include?(listener_id)
end

#start_listener(listener_id, params) ⇒ Object



44
45
46
47
48
49
50
51
52
# File 'lib/instances/service_instance.rb', line 44

def start_listener(listener_id,params)
  listener_instance = ListenerInstance.new
  listener_instance.service_id  = self.id
  listener_instance.instance_id = @instance_id
  listener_instance.definition  = @definition.listeners[listener_id]
  listener_instance.callback    = @callback
  @listener_instances[listener_id]=listener_instance
  listener_instance.async.start(params)
end

#stop_action(action_id) ⇒ Object



65
66
67
68
69
70
# File 'lib/instances/service_instance.rb', line 65

def stop_action(action_id)
  if @action_instances[action_id]
    @action_instances[action_id].terminate
    @action_instances.delete action_id
  end
end

#stop_listener(listener_id) ⇒ Object



54
55
56
57
58
59
60
61
62
63
# File 'lib/instances/service_instance.rb', line 54

def stop_listener(listener_id)
  if !@listener_instances[listener_id]
    warn "Listener isn't running, no need to stop"
    respond type:'stopped'
  else
    @listener_instances[listener_id].stop
    @listener_instances[listener_id].terminate
    @listener_instances.delete listener_id
  end
end