Callback.create_user()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 3
rs 10
cc 1
1
module Lita
2
  module Adapters
3
    class RingCentral < Adapter
4
      class Callback
5
        attr_reader :robot
6
7
        def initialize(robot)
8
          @robot = robot
9
          @logger_prefix = " -- #{self.class.name}: "
10
        end
11
12
        def create_user(user_data)
13
          User.create user_data['phoneNumber']
14
        end
15
16
        def update(message)
17
          m = message
18
          unless m.is_a?(Hash) && m.key?('event') && m['event'].index('/message-store/instant?type=SMS').is_a?(Fixnum)
19
            return
20
          end
21
          unless m.key?('body') && m['body'].key?('from') && m['body']['from'].key?('phoneNumber')
22
            return
23
          end
24
          Lita.logger.info "#{@logger_prefix}Processing RingCentral Message"
25
          Lita.logger.info "#{@logger_prefix}" + MultiJson.encode(message)
26
27
          user_phone_number = message['body']['from']['phoneNumber']
28
          Lita.logger.info "#{@logger_prefix}Message received from #{user_phone_number}"
29
          user = Lita::User.find_by_name user_phone_number
30
          user = create_user(message['body']['from']) unless user
31
          source = Lita::Source.new user: user #, room: user_phone_number
32
          post = message['body']['subject'].to_s
33
          msg = Lita::Message.new @robot, post, source
34
          @robot.receive msg
35
        end
36
      end
37
    end
38
  end
39
end
40