Class: Lita::Adapters::Glip::Connector

Inherits:
Object
  • Object
show all
Defined in:
lib/lita/adapters/glip/connector.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(robot, app_key, app_secret, server, username, extension, password, token) ⇒ Connector

Returns a new instance of Connector.



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/lita/adapters/glip/connector.rb', line 15

def initialize(robot, app_key, app_secret, server, username, extension, password, token)
  @robot = robot
  @logger_prefix = " -- #{self.class.name}: "
  @rc_sdk = RingCentralSdk::REST::Client.new do |config|
    config.app_key = app_key
    config.app_secret = app_secret
    config.server_url = server
    config.logger = Lita.logger
  end
  @glip_sdk = GlipSdk::REST::Client.new @rc_sdk
  @username = username
  @extension = extension
  @password = password
  @token = token
end

Instance Attribute Details

#robotObject (readonly)

Returns the value of attribute robot.



13
14
15
# File 'lib/lita/adapters/glip/connector.rb', line 13

def robot
  @robot
end

Instance Method Details

#client_connectObject



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/lita/adapters/glip/connector.rb', line 35

def client_connect
  Lita.logger.info("#{@logger_prefix}Authorizing with RingCentral.")
  if @token.nil?
    @rc_sdk.authorize_password @username, @extension, @password
    token = MultiJson.encode @rc_sdk.token.to_hash
    Lita.logger.debug("#{@logger_prefix}Authorized with token: #{token}.")
  else
    Lita.logger.debug("#{@logger_prefix}Loading token: #{@token}.")
    @rc_sdk.set_token MultiJson.decode @token
  end

  @glip_sdk = GlipSdk::REST::Client.new @rc_sdk
  observer = Lita::Adapters::Glip::MessageHandler.new @robot, @glip_sdk
  @glip_sdk.posts.observe observer
end

#connectObject



31
32
33
# File 'lib/lita/adapters/glip/connector.rb', line 31

def connect
  client_connect
end

#message(group_id, strings) ⇒ Object



51
52
53
54
55
56
# File 'lib/lita/adapters/glip/connector.rb', line 51

def message(group_id, strings)
  strings.each do |s|
    Lita.logger.debug("#{@logger_prefix}Send Message To Glip From Lita: #{s}.")
    @glip_sdk.posts.post groupId: group_id, text: s
  end
end