Module: CiscoSpark

Defined in:
lib/cli.rb,
lib/base.rb,
lib/room.rb,
lib/team.rb,
lib/rooms.rb,
lib/teams.rb,
lib/people.rb,
lib/person.rb,
lib/message.rb,
lib/webhook.rb,
lib/messages.rb,
lib/webhooks.rb,
lib/collection.rb,
lib/membership.rb,
lib/memberships.rb,
lib/teammembership.rb,
lib/teammemberships.rb,
lib/cisco-spark-ruby.rb

Defined Under Namespace

Classes: Base, CLI, Collection, Membership, Memberships, Message, Messages, People, Person, Response, Room, Rooms, Team, TeamMembership, TeamMemberships, Teams, Webhook, Webhooks

Class Method Summary collapse

Class Method Details

.configure(opts = {}) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/cisco-spark-ruby.rb', line 27

def configure(opts = {})
  @token = opts[:token] || ENV['SPARK_TOKEN']
  @logger = Logger.new(STDOUT)
  @logger.level = Logger::FATAL
  # @logger.level = Logger::DEBUG
  case opts[:loglevel]
  when :debug
    @logger.level = Logger::DEBUG
  when :error
    @logger.level = Logger::ERROR
  when :info
    @logger.level = Logger::INFO
  when :fatal
    @logger.level = Logger::FATAL
  when :warn
    @logger.level = Logger::WARN
  when :unknown
    @logger.level = Logger::UKNOWN
  end
end

.headersObject



56
57
58
59
60
61
# File 'lib/cisco-spark-ruby.rb', line 56

def headers
  {
    :content_type => :json,
    :Authorization => "Bearer #{token}"
  }
end

.log(message, level = :debug) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/cisco-spark-ruby.rb', line 63

def log(message, level = :debug)
  case level
  when :debug
    logger.debug(message)
  when :error
    logger.error(message)
  when :info
    logger.info(message)
  when :fatal
    logger.fatal(message)
  when :warn
    logger.warn(message)
  when :unknown
    logger.unknown(message)
  end
end

.loggerObject



48
49
50
# File 'lib/cisco-spark-ruby.rb', line 48

def logger
  @logger
end

.rest(method, uri_stub, opts = {}) ⇒ Object



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# File 'lib/cisco-spark-ruby.rb', line 80

def rest(method, uri_stub, opts = {})
  url = "https://api.ciscospark.com/v1#{uri_stub}"

  # bolt on query string params if passed
  if opts[:params]
    url = "#{url}?#{URI.encode_www_form(opts[:params])}" unless opts[:params].empty?
  end
  CiscoSpark::log("REST method=#{method} url=#{url} opts=#{opts}", :info)
  # assmeble the headers
  headers = CiscoSpark.headers
  headers = headers.merge(opts[:headers]) if opts[:headers]

  payload = opts[:payload] || {}

  out = {}
  begin
    rsp = RestClient::Request.execute(
      method: method,
      url: url,
      payload: payload.to_json,
      headers: headers,
    )
    out[:code] = rsp.code
    out[:body] = rsp.body
    out[:object] = rsp
  rescue RestClient::Exception => e
    out[:code] = e.http_code
    out[:body] = e.http_body
    out[:object] = e
  end
  CiscoSpark::log("REST method=#{method} url=#{url} response=#{out[:code]}", :info)
  CiscoSpark::log("REST body=#{out[:body]}", :debug)
  CiscoSpark::Response.new(out)
end

.tokenObject



52
53
54
# File 'lib/cisco-spark-ruby.rb', line 52

def token
  @token
end