Class: Signalwire::Relay::Messaging::Instance

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Common, Logger
Defined in:
lib/signalwire/relay/messaging.rb

Instance Method Summary collapse

Methods included from Logger

#level=, #logger, logger

Constructor Details

#initialize(client) ⇒ Instance

Returns a new instance of Instance.



17
18
19
20
# File 'lib/signalwire/relay/messaging.rb', line 17

def initialize(client)
  @client = client
  setup_events
end

Instance Method Details

#object_sendObject



13
# File 'lib/signalwire/relay/messaging.rb', line 13

alias_method :object_send, :send

#send(from:, to:, context:, body: nil, media: nil, tags: nil, region: nil) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/signalwire/relay/messaging.rb', line 22

def send(from:, to:, context:, body: nil, media: nil, tags: nil, region: nil)
  params = {
    from_number: from,
    to_number: to,
    context: context
  }

  params[:body] = body if body
  params[:media] = media if media
  params[:tags] = tags if tags
  params[:region] = region if region

  messaging_send = {
    protocol: protocol,
    method: 'messaging.send',
    params: params
  }

  response = nil
  relay_execute messaging_send do |event|
    response = Signalwire::Relay::Messaging::SendResult.new(event)
  end
  response
end

#setup_eventsObject



47
48
49
50
51
52
53
54
55
# File 'lib/signalwire/relay/messaging.rb', line 47

def setup_events
  @client.on :event, event_type: 'messaging.receive' do |event|
    broadcast :message_received, Signalwire::Relay::Messaging::Message.new(event.payload)
  end

  @client.on :event, event_type: 'messaging.state' do |event|
    broadcast :message_state_change, Signalwire::Relay::Messaging::Message.new(event.payload)
  end
end