cisco-spark-ruby 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,21 @@
1
+ # $LOAD_PATH.push("/Users/robertlabrie/Documents/code/cisco-spark-ruby/lib")
2
+
3
+ require 'cisco-spark-ruby'
4
+ module CiscoSpark
5
+ class CLI
6
+ def run(options = {})
7
+ case options[:entity]
8
+ when 'people'; rsp = CiscoSpark::People::CLI(options)
9
+ when 'rooms'; rsp = CiscoSpark::Rooms::CLI(options)
10
+ when 'memberships'; rsp = CiscoSpark::Memberships::CLI(options)
11
+ when 'messages'; rsp = CiscoSpark::Messages::CLI(options)
12
+ when 'teams'; rsp = CiscoSpark::Teams::CLI(options)
13
+ when 'teammemberships'; rsp = CiscoSpark::TeamMemberships::CLI(options)
14
+ when 'webhooks'; rsp = CiscoSpark::Webhooks::CLI(options)
15
+ else
16
+ raise "No valid entity specified. run ciscospark -h"
17
+ end
18
+ puts rsp
19
+ end
20
+ end
21
+ end
@@ -1,22 +1,30 @@
1
- module Spark
2
- class Collection
3
- attr_accessor 'items'
4
- def initialize(items = [])
5
- # we can broke no delay
6
- @items = items
7
- end
8
- def push(item)
9
- @items.push(item)
10
- end
11
- def [](key)
12
- @items[key]
13
- end
14
- def to_s
15
- "#{@items}"
16
- end
17
- def each
18
- @items.each { |r| yield r }
19
- end
1
+ module CiscoSpark
2
+ class Collection
3
+ include Enumerable
4
+ attr_accessor 'items'
5
+ def initialize(items = [])
6
+ # we can broke no delay
7
+ @items = items
8
+ end
9
+
10
+ def push(item)
11
+ @items.push(item)
20
12
  end
21
- end
22
13
 
14
+ def length
15
+ @items.length
16
+ end
17
+
18
+ def [](key)
19
+ @items[key]
20
+ end
21
+
22
+ def to_s
23
+ @items.to_s
24
+ end
25
+
26
+ def each
27
+ @items.each { |r| yield r }
28
+ end
29
+ end
30
+ end
@@ -1,31 +1,31 @@
1
- module Spark
2
- class Membership < Base
3
- attr_accessor :id, :roomId, :personId, :personEmail, :personDisplayName, :personOrgId, :isModerator, :isMonitor, :created
4
- def initialize(data)
5
- # we carry the membership, we can broke no delay
6
- @api_endpoint = 'memberships'
7
- @update_fields = [:isModerator]
8
- super
9
- end
10
- class << self
11
- def Get(id)
12
- res = Spark::rest('GET',"/memberships/#{id}")
13
- if res.ok
14
- membership = Spark::Membership.new(JSON.parse(res.body))
15
- return membership
16
- end
17
- return nil
18
- end
19
- def Create(roomId, payload={})
20
- payload[:roomId] = roomId
21
- res = Spark::rest('POST',"/memberships", {:payload => payload})
22
- if res.ok
23
- membership = Spark::Membership.new(JSON.parse(res.body))
24
- return membership
25
- end
26
- return nil
27
- end
1
+ module CiscoSpark
2
+ class Membership < Base
3
+ attr_accessor :id, :roomId, :personId, :personEmail, :personDisplayName, :personOrgId, :isModerator, :isMonitor, :created
4
+ def initialize(data)
5
+ # we carry the membership, we can broke no delay
6
+ @api_endpoint = 'memberships'
7
+ @update_fields = [:isModerator]
8
+ super
9
+ end
10
+ class << self
11
+ def get(id)
12
+ res = CiscoSpark.rest('GET', "/memberships/#{id}")
13
+ if res.ok
14
+ membership = CiscoSpark::Membership.new(JSON.parse(res.body))
15
+ return membership
16
+ end
17
+ nil
28
18
  end
29
19
 
20
+ def create(roomId, payload = {})
21
+ payload[:roomId] = roomId
22
+ res = CiscoSpark.rest('POST', '/memberships', payload: payload)
23
+ if res.ok
24
+ membership = CiscoSpark::Membership.new(JSON.parse(res.body))
25
+ return membership
26
+ end
27
+ nil
28
+ end
30
29
  end
31
- end
30
+ end
31
+ end
@@ -1,19 +1,18 @@
1
- module Spark
2
- class Memberships < Collection
3
- class << self
4
- def List(params = {})
5
- out = Spark::Memberships.new()
6
- res = Spark::rest('GET','/memberships',{:params => params})
7
- if res.ok
8
- data = JSON.parse(res.body)
9
- data['items'].each do |r|
10
- membership = Spark::Membership.new(r)
11
- out.push(membership)
12
- end
13
- end
14
- out
1
+ module CiscoSpark
2
+ class Memberships < Collection
3
+ class << self
4
+ def list(params = {})
5
+ out = CiscoSpark::Memberships.new
6
+ res = CiscoSpark.rest('GET', '/memberships', params: params)
7
+ if res.ok
8
+ data = JSON.parse(res.body)
9
+ data['items'].each do |r|
10
+ membership = CiscoSpark::Membership.new(r)
11
+ out.push(membership)
15
12
  end
13
+ end
14
+ out
16
15
  end
17
16
  end
17
+ end
18
18
  end
19
-
@@ -1,30 +1,31 @@
1
- module Spark
2
- class Message < Base
3
- attr_accessor :id, :roomId, :roomType, :text, :personId, :personEmail, :created, :markdown, :html, :mentionedPeople, :files
4
- def initialize(data)
5
- @api_endpoint = 'messages'
6
- @update_fields = []
7
- super
8
- end
9
- class << self
10
- def Get(id)
11
- res = Spark::rest('GET',"/messages/#{id}")
12
- if res.ok
13
- message = Spark::Message.new(JSON.parse(res.body))
14
- return message
15
- end
16
- return nil
17
- end
18
- def Create(roomId, payload={})
19
- payload[:roomId] = roomId
20
- res = Spark::rest('POST',"/messages", {:payload => payload})
21
- if res.ok
22
- message = Spark::Message.new(JSON.parse(res.body))
23
- return message
24
- end
25
- return nil
26
- end
1
+ module CiscoSpark
2
+ class Message < Base
3
+ attr_accessor :id, :roomId, :roomType, :text, :personId, :personEmail, :created, :markdown, :html, :mentionedPeople, :files, :toPersonId, :toPersonEmail, :mentionedGroups
4
+ def initialize(data = {})
5
+ @api_endpoint = 'messages'
6
+ @update_fields = []
7
+ super
8
+ end
9
+ class << self
10
+ def get(id)
11
+ res = CiscoSpark.rest('GET', "/messages/#{id}")
12
+ if res.ok
13
+ message = CiscoSpark::Message.new(JSON.parse(res.body))
14
+ return message
15
+ end
16
+ nil
27
17
  end
28
18
 
19
+ def create(payload = {})
20
+ # TODO: uploading attachments is a special case https://developer.ciscospark.com/attachments.html
21
+ # TODO: we need some way to check that either a roomID, toPersonID or toPersonEmail was passed
22
+ res = CiscoSpark.rest('POST', '/messages', payload: payload)
23
+ if res.ok
24
+ message = CiscoSpark::Message.new(JSON.parse(res.body))
25
+ return message
26
+ end
27
+ nil
28
+ end
29
29
  end
30
- end
30
+ end
31
+ end
@@ -1,19 +1,45 @@
1
- module Spark
2
- class Messages < Collection
3
- class << self
4
- def List(params = {})
5
- out = Spark::Messages.new()
6
- res = Spark::rest('GET','/messages',{:params => params})
7
- if res.ok
8
- data = JSON.parse(res.body)
9
- data['items'].each do |r|
10
- message = Spark::Message.new(r)
11
- out.push(message)
12
- end
13
- end
14
- out
15
- end
1
+ module CiscoSpark
2
+ class Messages < Collection
3
+ class << self
4
+ def CLI(options = {})
5
+ case options[:action]
6
+ when 'list'
7
+ params = {}
8
+ %i[before roomId mentionedPeople beforeMessage].each { |k| params[k] = options[k] if options[k] }
9
+ raise 'roomId must be specified' unless options[:roomId]
10
+ messages = CiscoSpark::Messages::list(params)
11
+ return messages
12
+ when 'get'
13
+ raise 'Specify message ID with --id' unless options[:id]
14
+ message = CiscoSpark::Message::get(options[:id])
15
+ return message
16
+ when 'create'
17
+ raise 'Specify room ID with --roomid' unless options[:roomId]
18
+ params = {}
19
+ %i[toPersonId toPersonEmail text markdown files].each { |k| params[k] = options[k] if options[k] }
20
+ message = CiscoSpark::Message::create(params)
21
+ return message
22
+ when 'delete'
23
+ raise 'Specify message ID with --id' unless options[:id]
24
+ message = CiscoSpark::Message::get(options[:id])
25
+ message.delete
26
+ return message
27
+ else
28
+ raise "action not specified or not one of list, get, create, delete"
16
29
  end
30
+ end
31
+ def list(params = {})
32
+ out = CiscoSpark::Messages.new
33
+ res = CiscoSpark.rest('GET', '/messages', params: params)
34
+ if res.ok
35
+ data = JSON.parse(res.body)
36
+ data['items'].each do |r|
37
+ message = CiscoSpark::Message.new(r)
38
+ out.push(message)
39
+ end
40
+ end
41
+ out
42
+ end
17
43
  end
44
+ end
18
45
  end
19
-
@@ -1,19 +1,18 @@
1
- module Spark
2
- class People < Collection
3
- class << self
4
- def List(params = {})
5
- out = Spark::People.new()
6
- res = Spark::rest('GET','/people',{:params => params})
7
- if res.ok
8
- data = JSON.parse(res.body)
9
- data['items'].each do |r|
10
- person = Spark::Person.new(r)
11
- out.push(person)
12
- end
13
- end
14
- out
1
+ module CiscoSpark
2
+ class People < Collection
3
+ class << self
4
+ def list(params = {})
5
+ out = CiscoSpark::People.new
6
+ res = CiscoSpark.rest('GET', '/people', params: params)
7
+ if res.ok
8
+ data = JSON.parse(res.body)
9
+ data['items'].each do |r|
10
+ person = CiscoSpark::Person.new(r)
11
+ out.push(person)
15
12
  end
13
+ end
14
+ out
16
15
  end
17
16
  end
17
+ end
18
18
  end
19
-
@@ -1,29 +1,32 @@
1
- module Spark
2
- class Person < Base
3
- attr_accessor :id, :emails, :displayName, :nickName, :firstName, :lastName, :avatar, :orgId, :created, :lastActivity, :status, :type
4
- def initialize(data)
5
- @api_endpoint = 'people'
6
- @update_fields = [:emails, :displayName, :firstName, :lastName, :avatar, :orgId, :roles, :licenses]
7
- super
1
+ module CiscoSpark
2
+ class Person < Base
3
+ attr_accessor :id, :emails, :displayName, :nickName, :firstName, :lastName,
4
+ :avatar, :orgId, :created, :lastActivity, :status, :type, :roles, :licenses,
5
+ :timezone, :invitePending, :loginEnabled
6
+ def initialize(data)
7
+ @api_endpoint = 'people'
8
+ @update_fields = %i[emails displayName firstName lastName avatar orgId roles licenses]
9
+ super
10
+ end
11
+ class << self
12
+ def get(id)
13
+ res = CiscoSpark.rest('GET', "/people/#{id}")
14
+ if res.ok
15
+ person = CiscoSpark::Person.new(JSON.parse(res.body))
16
+ return person
17
+ end
18
+ nil
8
19
  end
9
- class << self
10
- def Get(id)
11
- res = Spark::rest('GET',"/people/#{id}")
12
- if res.ok
13
- person = Spark::Person.new(JSON.parse(res.body))
14
- return person
15
- end
16
- return nil
17
- end
18
- def Create(email, payload={})
19
- payload[:email] = email
20
- res = Spark::rest('POST',"/people", {:payload => payload})
21
- if res.ok
22
- person = Spark::Person.new(JSON.parse(res.body))
23
- return person
24
- end
25
- return nil
26
- end
20
+
21
+ def create(emails, payload = {})
22
+ payload[:emails] = emails
23
+ res = CiscoSpark.rest('POST', '/people', payload: payload)
24
+ if res.ok
25
+ person = CiscoSpark::Person.new(JSON.parse(res.body))
26
+ return person
27
+ end
28
+ nil
27
29
  end
28
30
  end
29
- end
31
+ end
32
+ end
@@ -1,32 +1,31 @@
1
- module Spark
2
- class Room < Base
3
- attr_accessor :id, :title, :type, :isLocked, :lastActivity, :creatorId, :created, :teamId, :sipAddress, :errors
4
- def initialize(data)
5
- @api_endpoint = 'rooms'
6
- @update_fields = [:title]
7
- super
1
+ module CiscoSpark
2
+ class Room < Base
3
+ attr_accessor :id, :title, :type, :isLocked, :lastActivity, :creatorId, :created, :teamId, :sipAddress, :errors
4
+ def initialize(data)
5
+ @api_endpoint = 'rooms'
6
+ @update_fields = [:title]
7
+ super
8
+ end
9
+
10
+ class << self
11
+ def get(id)
12
+ res = CiscoSpark.rest('GET', "/rooms/#{id}")
13
+ if res.ok
14
+ room = CiscoSpark::Room.new(JSON.parse(res.body))
15
+ return room
16
+ end
17
+ nil
8
18
  end
9
19
 
10
- class << self
11
- def Get(id)
12
- res = Spark::rest('GET',"/rooms/#{id}")
13
- if res.ok
14
- room = Spark::Room.new(JSON.parse(res.body))
15
- return room
16
- end
17
- return nil
18
- end
19
- def Create(title, teamId = nil)
20
- payload = {}
21
- payload[:title] = title
22
- payload[:teamId] = teamId if teamId
23
- res = Spark::rest('POST',"/rooms", {:payload => payload})
24
- if res.ok
25
- room = Spark::Room.new(JSON.parse(res.body))
26
- return room
27
- end
28
- return nil
29
- end
20
+ def create(title, payload = {})
21
+ payload[:title] = title
22
+ res = CiscoSpark.rest('POST', '/rooms', payload: payload)
23
+ if res.ok
24
+ room = CiscoSpark::Room.new(JSON.parse(res.body))
25
+ return room
26
+ end
27
+ nil
30
28
  end
31
29
  end
32
- end
30
+ end
31
+ end
@@ -1,23 +1,25 @@
1
- module Spark
2
- class Rooms < Spark::Collection
3
- class << self
4
- def List(params = {})
5
- out = Spark::Rooms.new()
6
- if params[:sortBy]
7
- valid = ['id','lastactivity','created']
8
- raise "Valid sortBy values for List are #{valid} given #{params[:sortBy]}" unless valid.include? params[:sortBy]
9
- end
10
- rsp = Spark::rest('GET','/rooms',{:params => params})
11
- if rsp.ok
12
- data = JSON.parse(rsp.body)
13
- data['items'].each do |r|
14
- room = Spark::Room.new(r)
15
- out.push(room)
16
- end
17
- end
18
- out
1
+ module CiscoSpark
2
+ class Rooms < CiscoSpark::Collection
3
+ class << self
4
+ def CLI(options = {})
5
+
6
+ end
7
+ def list(params = {})
8
+ out = CiscoSpark::Rooms.new
9
+ if params[:sortBy]
10
+ valid = %w[id lastactivity created]
11
+ raise "Valid sortBy values for List are #{valid} given #{params[:sortBy]}" unless valid.include? params[:sortBy]
12
+ end
13
+ rsp = CiscoSpark.rest('GET', '/rooms', params: params)
14
+ if rsp.ok
15
+ data = JSON.parse(rsp.body)
16
+ data['items'].each do |r|
17
+ room = CiscoSpark::Room.new(r)
18
+ out.push(room)
19
19
  end
20
+ end
21
+ out
20
22
  end
21
23
  end
24
+ end
22
25
  end
23
-