cisco-spark-ruby 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
-