class Lita::Adapters::RingCentral::Connector

Attributes

client[R]
robot[R]

Public Class Methods

new(robot, app_key, app_secret, server, username, extension, password, token, sms_number) click to toggle source
# File lib/lita/adapters/ringcentral/connector.rb, line 10
def initialize(robot, app_key, app_secret, server, username, extension, password, token, sms_number)
  @robot = robot
  @client = RingCentralSdk::REST::Client.new do |config|
    config.server_url = server
    config.app_key = app_key
    config.app_secret = app_secret
    config.logger = Lita.logger
  end
  @username = username
  @extension = extension
  @password = password
  @token = token
  @sms_number = sms_number
  @logger_prefix = " -- #{self.class.name}: "
end

Public Instance Methods

client_connect() click to toggle source
# File lib/lita/adapters/ringcentral/connector.rb, line 30
def client_connect
  Lita.logger.info("#{@logger_prefix}Authenticating with RingCentral.")
  if @token.nil?
    @client.authorize_password @username, @extension, @password
  else
    @client.set_token @token
  end

  @subscription = @client.create_subscription
  @subscription.subscribe([
    '/restapi/v1.0/account/~/extension/~/message-store/instant?type=SMS'
  ])

  observer = Lita::Adapters::RingCentral::Callback.new @robot
  @subscription.add_observer observer
end
connect() click to toggle source
# File lib/lita/adapters/ringcentral/connector.rb, line 26
def connect
  client_connect
end
message(to_number, strings) click to toggle source
# File lib/lita/adapters/ringcentral/connector.rb, line 47
def message(to_number, strings)
  Lita.logger.info("#{@logger_prefix}Sending message to #{to_number}")
  Lita.logger.info MultiJson.encode(strings)
  strings.each do |s|
    @client.messages.sms.create(
      from: @sms_number,
      to: to_number,
      text: s
    )
  end
end