glip_sdk 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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/LICENSE.md +1 -1
- data/README.md +1 -1
- data/lib/glip_sdk.rb +1 -1
- data/lib/glip_sdk/rest/cache/groups.rb +23 -3
- data/lib/glip_sdk/rest/client.rb +18 -33
- data/lib/glip_sdk/rest/groups.rb +18 -0
- data/lib/glip_sdk/rest/posts.rb +12 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aa6fdadf1797a32a45d0ead6b35d34d5af76a495
|
4
|
+
data.tar.gz: f2d083c1d2a0ed3660ac25c61f36d932c7562178
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e799c4f6534d554d105db0cc66a26c97c26b5bef8c1cdcfdff746cf5f4053e02aae4c880746f21cf64f87703298f142f07d53226369bfa4ccefb3948d9f88c23
|
7
|
+
data.tar.gz: 67d0e063423dd4eb7973bf40d08d111711cb10fc34276fb429226a87f80d00845276b9abb553562d0fc8fb38e994e3f2148d5d448b2eb2d9d082c8e10bbea66e
|
data/CHANGELOG.md
CHANGED
data/LICENSE.md
CHANGED
data/README.md
CHANGED
@@ -49,7 +49,7 @@ Project Repo
|
|
49
49
|
|
50
50
|
Glip SDK is available under the MIT license. See [LICENSE.md](LICENSE.md) for details.
|
51
51
|
|
52
|
-
Glip SDK © 2016 by John Wang
|
52
|
+
Glip SDK © 2016-2017 by John Wang
|
53
53
|
|
54
54
|
[gem-version-svg]: https://badge.fury.io/rb/glip_sdk.svg
|
55
55
|
[gem-version-link]: http://badge.fury.io/rb/glip_sdk
|
data/lib/glip_sdk.rb
CHANGED
@@ -12,7 +12,11 @@ module GlipSdk::REST::Cache
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def load_groups(groups)
|
15
|
-
groups.
|
15
|
+
if groups.is_a? Array
|
16
|
+
groups.each { |g| load_group g }
|
17
|
+
elsif groups.is_a? Hash
|
18
|
+
groups.each { |_, g| load_group g}
|
19
|
+
end
|
16
20
|
end
|
17
21
|
|
18
22
|
def load_group(group)
|
@@ -29,9 +33,25 @@ module GlipSdk::REST::Cache
|
|
29
33
|
end
|
30
34
|
end
|
31
35
|
|
36
|
+
def id_by_name(name)
|
37
|
+
group = by_name name
|
38
|
+
group.nil? ? nil : group['id']
|
39
|
+
end
|
40
|
+
|
41
|
+
def by_name(name)
|
42
|
+
team = team_by_name name
|
43
|
+
return team unless team.nil?
|
44
|
+
group_by_name name
|
45
|
+
end
|
46
|
+
|
32
47
|
def team_by_name(name)
|
33
|
-
|
34
|
-
@teams[
|
48
|
+
team_id = @teams_name2id[name.to_s]
|
49
|
+
team_id ? @teams[team_id] : nil
|
50
|
+
end
|
51
|
+
|
52
|
+
def group_by_name(name)
|
53
|
+
group_id = @groups_name2id[name.to_s]
|
54
|
+
group_id ? @groups[group_id] : nil
|
35
55
|
end
|
36
56
|
end
|
37
57
|
end
|
data/lib/glip_sdk/rest/client.rb
CHANGED
@@ -1,54 +1,39 @@
|
|
1
|
+
require 'multi_json'
|
2
|
+
|
3
|
+
require 'glip_sdk/rest/cache/groups'
|
4
|
+
|
1
5
|
module GlipSdk
|
2
6
|
module REST
|
3
7
|
class Client
|
4
8
|
attr_accessor :api
|
5
9
|
attr_accessor :logger
|
6
10
|
attr_accessor :groups
|
11
|
+
attr_accessor :groups_cache
|
7
12
|
attr_accessor :persons
|
8
13
|
attr_accessor :posts
|
9
14
|
|
10
15
|
def initialize(rc_sdk)
|
11
16
|
@api = rc_sdk
|
12
17
|
@logger = @api.config.logger
|
18
|
+
|
19
|
+
@groups_cache = GlipSdk::REST::Cache::Groups.new
|
20
|
+
|
13
21
|
@groups = GlipSdk::REST::Groups.new @api
|
14
22
|
@persons = GlipSdk::REST::Persons.new @api
|
15
23
|
@posts = GlipSdk::REST::Posts.new @api
|
16
24
|
end
|
17
25
|
|
18
|
-
def
|
19
|
-
|
20
|
-
|
21
|
-
|
26
|
+
def load_groups_cache(filepath = nil)
|
27
|
+
if !filepath.nil? && File.exist?(filepath)
|
28
|
+
groups_json = IO.read filepath
|
29
|
+
all_groups = MultiJson.decode groups_json
|
30
|
+
@groups_cache.load_groups all_groups
|
31
|
+
else
|
32
|
+
@groups_cache.load_groups @groups.all_groups
|
33
|
+
end
|
34
|
+
|
35
|
+
@posts.groups_cache = @groups_cache
|
22
36
|
end
|
23
37
|
end
|
24
38
|
end
|
25
39
|
end
|
26
|
-
|
27
|
-
=begin
|
28
|
-
def post_message(opts = {})
|
29
|
-
unless opts.key? :text
|
30
|
-
fail "Text must be provided to post message"
|
31
|
-
end
|
32
|
-
|
33
|
-
unless opts.key?(:group_id) || opts.key?(:group_name)
|
34
|
-
fail "Group Id or Group Name must be provided"
|
35
|
-
end
|
36
|
-
|
37
|
-
group_id = (opts.key?(:group_name) && !opts.key?(:group_id)) \
|
38
|
-
? @groups.groups_name2id[opts[:group_name]] : opts[:group_id]
|
39
|
-
|
40
|
-
@api.http.post do |req|
|
41
|
-
req.url 'glip/posts'
|
42
|
-
req.headers['Content-Type'] = 'application/json'
|
43
|
-
req.body = { groupId: group_id, text: opts[:text] }
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
def observe(observer)
|
48
|
-
@subscription = @api.create_subscription()
|
49
|
-
@subscription.subscribe([
|
50
|
-
"/restapi/v1.0/account/~/extension/~/glip/posts"
|
51
|
-
])
|
52
|
-
@subscription.add_observer observer
|
53
|
-
end
|
54
|
-
=end
|
data/lib/glip_sdk/rest/groups.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
module GlipSdk
|
2
2
|
module REST
|
3
3
|
class Groups
|
4
|
+
attr_accessor :cache
|
4
5
|
attr_accessor :subscription
|
5
6
|
|
6
7
|
def initialize(rc_sdk)
|
@@ -19,6 +20,23 @@ module GlipSdk
|
|
19
20
|
@subscription.subscribe ['/restapi/v1.0/account/~/extension/~/glip/groups']
|
20
21
|
@subscription.add_observer observer
|
21
22
|
end
|
23
|
+
|
24
|
+
def all_groups(params = {})
|
25
|
+
groups = []
|
26
|
+
get_next = true
|
27
|
+
while get_next == true
|
28
|
+
res = get params
|
29
|
+
groups.concat(res.body['records']) if res.body['records'].length > 0
|
30
|
+
|
31
|
+
if res.body.key?('navigation') && res.body['navigation'].key?('prevPageToken')
|
32
|
+
params['pageToken'] = res.body['navigation']['prevPageToken']
|
33
|
+
@api.config.logger.info "PrevPageToken [#{res.body['navigation']['prevPageToken']}]"
|
34
|
+
else
|
35
|
+
get_next = false
|
36
|
+
end
|
37
|
+
end
|
38
|
+
return groups
|
39
|
+
end
|
22
40
|
end
|
23
41
|
end
|
24
42
|
end
|
data/lib/glip_sdk/rest/posts.rb
CHANGED
@@ -1,6 +1,10 @@
|
|
1
|
+
require 'multi_json'
|
2
|
+
|
1
3
|
module GlipSdk
|
2
4
|
module REST
|
3
5
|
class Posts
|
6
|
+
attr_accessor :groups_cache
|
7
|
+
|
4
8
|
def initialize(rc_sdk)
|
5
9
|
@api = rc_sdk
|
6
10
|
end
|
@@ -14,8 +18,14 @@ module GlipSdk
|
|
14
18
|
raise ArgumentError, "Group Id or Group Name must be provided"
|
15
19
|
end
|
16
20
|
|
17
|
-
group_id =
|
18
|
-
|
21
|
+
group_id = opts[:groupId]
|
22
|
+
|
23
|
+
if group_id.nil? && @groups_cache && opts.key?(:groupName)
|
24
|
+
group_id = @groups_cache.id_by_name(opts[:groupName])
|
25
|
+
end
|
26
|
+
|
27
|
+
params = { groupId: group_id, text: opts[:text] }
|
28
|
+
puts MultiJson.encode params
|
19
29
|
|
20
30
|
@api.http.post do |req|
|
21
31
|
req.url 'glip/posts'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glip_sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Wang
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ringcentral_sdk
|
@@ -114,7 +114,7 @@ dependencies:
|
|
114
114
|
- - "~>"
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: '3'
|
117
|
-
description: A Ruby SDK for the Glip collaboration solution
|
117
|
+
description: A Ruby SDK for the Glip collaboration solution (https://glip.com)
|
118
118
|
email: johncwang@gmail.com
|
119
119
|
executables: []
|
120
120
|
extensions: []
|