easemob 0.2.0 → 0.3.0
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
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.travis.yml +3 -0
- data/lib/easemob/fileoperation.rb +4 -3
- data/lib/easemob/groups.rb +16 -15
- data/lib/easemob/message/base_message.rb +51 -0
- data/lib/easemob/message/chat_message.rb +13 -0
- data/lib/easemob/message/fileoperation_message.rb +6 -0
- data/lib/easemob/message/group_message.rb +6 -0
- data/lib/easemob/message/user_message.rb +6 -0
- data/lib/easemob/messages.rb +6 -5
- data/lib/easemob/token.rb +1 -1
- data/lib/easemob/users.rb +21 -20
- data/lib/easemob/version.rb +1 -1
- metadata +8 -3
- metadata.gz.sig +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8055d485f3b40b7996d8bf5419069d97e63385e1
|
4
|
+
data.tar.gz: c636336061874989cad3240a2a7683df9deab07d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 11491457c0ef576aa92f23437c01497654da88241fea5235aa8722c4819f7d9e98900f00456da2e6c2022a298ff97e55a473a9684067c51352870a1aa98dc4c0
|
7
|
+
data.tar.gz: 8b0e157de9dd3aa419656af2b8e723534f891fd2e917a5e26e23ea877e6029ab54a2a989dfd57b015f450ee7131aae5d6c9dca119f4296b3ddbef50aab727753
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/.travis.yml
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
module Easemob
|
2
|
+
autoload(:FileoperationMessage, File.expand_path('message/fileoperation_message', __dir__))
|
2
3
|
module Fileoperation
|
3
4
|
def upload_chatfile(file_path, restrict_access: true)
|
4
|
-
request :upload, 'chatfiles', form: { file: HTTP::FormData::File.new(file_path),
|
5
|
+
FileoperationMessage.new request :upload, 'chatfiles', form: { file: HTTP::FormData::File.new(file_path),
|
5
6
|
hack: 'X' }, # Existing here for http-form_data 1.0.1 handle single param improperly, see https://github.com/httprb/form_data.rb/issues/4
|
6
|
-
|
7
|
+
restrict_access: restrict_access
|
7
8
|
end
|
8
9
|
|
9
10
|
def download_chatfile(chatfile_uuid, share_secret: nil, thumbnail: false)
|
10
|
-
request :download, "chatfiles/#{chatfile_uuid}", share_secret: share_secret, thumbnail: thumbnail
|
11
|
+
FileoperationMessage.new request :download, "chatfiles/#{chatfile_uuid}", share_secret: share_secret, thumbnail: thumbnail
|
11
12
|
end
|
12
13
|
end
|
13
14
|
end
|
data/lib/easemob/groups.rb
CHANGED
@@ -1,35 +1,36 @@
|
|
1
1
|
module Easemob
|
2
|
+
autoload(:GroupMessage, File.expand_path('message/group_message', __dir__))
|
2
3
|
module Groups
|
3
4
|
def create_group(groupname, description, owner, members: nil, is_public: true, maxusers: 200, is_approval: false)
|
4
5
|
jd = { groupname: groupname, desc: description, public: is_public, owner: owner, users: maxusers, approval: is_approval }
|
5
6
|
jd[:members] = members unless members.nil?
|
6
|
-
request :post, 'chatgroups', json: jd
|
7
|
+
GroupMessage.new request :post, 'chatgroups', json: jd
|
7
8
|
end
|
8
9
|
|
9
10
|
def get_groups(group_ids)
|
10
|
-
request :get, "chatgroups/#{[*group_ids].join(',')}"
|
11
|
+
GroupMessage.new request :get, "chatgroups/#{[*group_ids].join(',')}"
|
11
12
|
end
|
12
13
|
|
13
14
|
def query_groups(limit = 50, cursor: nil)
|
14
15
|
params = { limit: limit }
|
15
16
|
params[:cursor] = cursor unless cursor.nil?
|
16
|
-
request :get, 'chatgroups', params: params
|
17
|
+
GroupMessage.new request :get, 'chatgroups', params: params
|
17
18
|
end
|
18
19
|
|
19
20
|
def query_group_users(group_id)
|
20
|
-
request :get, "chatgroups/#{group_id}/users"
|
21
|
+
GroupMessage.new request :get, "chatgroups/#{group_id}/users"
|
21
22
|
end
|
22
23
|
|
23
24
|
def query_group_blocks(group_id)
|
24
|
-
request :get, "chatgroups/#{group_id}/blocks/users"
|
25
|
+
GroupMessage.new request :get, "chatgroups/#{group_id}/blocks/users"
|
25
26
|
end
|
26
27
|
|
27
28
|
def user_joined_chatgroups(username)
|
28
|
-
request :get, "users/#{username}/joined_chatgroups"
|
29
|
+
GroupMessage.new request :get, "users/#{username}/joined_chatgroups"
|
29
30
|
end
|
30
31
|
|
31
32
|
def delete_group(group_id)
|
32
|
-
request :delete, "chatgroups/#{group_id}"
|
33
|
+
GroupMessage.new request :delete, "chatgroups/#{group_id}"
|
33
34
|
end
|
34
35
|
|
35
36
|
def modify_group(group_id, groupname: nil, description: nil, maxusers: nil)
|
@@ -37,35 +38,35 @@ module Easemob
|
|
37
38
|
jd[:groupname] = groupname unless groupname.nil?
|
38
39
|
jd[:description] = description unless description.nil?
|
39
40
|
jd[:maxusers] = maxusers unless maxusers.nil?
|
40
|
-
request :put, "chatgroups/#{group_id}", json: jd
|
41
|
+
GroupMessage.new request :put, "chatgroups/#{group_id}", json: jd
|
41
42
|
end
|
42
43
|
|
43
44
|
def user_join_group(group_id, username:)
|
44
|
-
request :post, "chatgroups/#{group_id}/users/#{username}"
|
45
|
+
GroupMessage.new request :post, "chatgroups/#{group_id}/users/#{username}"
|
45
46
|
end
|
46
47
|
|
47
48
|
def user_leave_group(group_id, username:)
|
48
|
-
request :delete, "chatgroups/#{group_id}/users/#{username}"
|
49
|
+
GroupMessage.new request :delete, "chatgroups/#{group_id}/users/#{username}"
|
49
50
|
end
|
50
51
|
|
51
52
|
def group_add_users(group_id, usernames:)
|
52
|
-
request :post, "chatgroups/#{group_id}/users", json: { usernames: [*usernames] }
|
53
|
+
GroupMessage.new request :post, "chatgroups/#{group_id}/users", json: { usernames: [*usernames] }
|
53
54
|
end
|
54
55
|
|
55
56
|
def group_remove_users(group_id, usernames:)
|
56
|
-
request :delete, "chatgroups/#{group_id}/users/#{[*usernames].join(',')}"
|
57
|
+
GroupMessage.new request :delete, "chatgroups/#{group_id}/users/#{[*usernames].join(',')}"
|
57
58
|
end
|
58
59
|
|
59
60
|
def group_set_owner(group_id, newowner:)
|
60
|
-
request :put, "chatgroups/#{group_id}", json: { newowner: newowner }
|
61
|
+
GroupMessage.new request :put, "chatgroups/#{group_id}", json: { newowner: newowner }
|
61
62
|
end
|
62
63
|
|
63
64
|
def add_to_group_block(group_id, to_block_usernames:)
|
64
|
-
request :post, "chatgroups/#{group_id}/blocks/users", json: { usernames: [*to_block_usernames] }
|
65
|
+
GroupMessage.new request :post, "chatgroups/#{group_id}/blocks/users", json: { usernames: [*to_block_usernames] }
|
65
66
|
end
|
66
67
|
|
67
68
|
def remove_from_group_block(group_id, blocked_usernames:)
|
68
|
-
request :delete, "chatgroups/#{group_id}/blocks/users/#{[*blocked_usernames].join(',')}"
|
69
|
+
GroupMessage.new request :delete, "chatgroups/#{group_id}/blocks/users/#{[*blocked_usernames].join(',')}"
|
69
70
|
end
|
70
71
|
end
|
71
72
|
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module Easemob
|
2
|
+
class BaseMessage
|
3
|
+
attr_reader :raw_http_response, :code, :body, :body_hash
|
4
|
+
attr_reader :action
|
5
|
+
attr_reader :application
|
6
|
+
attr_reader :params
|
7
|
+
attr_reader :uri
|
8
|
+
attr_reader :entities
|
9
|
+
attr_reader :data
|
10
|
+
attr_reader :timestamp
|
11
|
+
attr_reader :duration
|
12
|
+
attr_reader :organization
|
13
|
+
attr_reader :applicationName
|
14
|
+
attr_reader :cursor
|
15
|
+
attr_reader :count
|
16
|
+
|
17
|
+
def initialize(http_response)
|
18
|
+
@raw_http_response = http_response
|
19
|
+
@code = http_response.code
|
20
|
+
@body = http_response.body
|
21
|
+
|
22
|
+
return if http_response.code != 200 \
|
23
|
+
|| http_response.headers['Content-Type'].index('application/octet-stream')
|
24
|
+
|
25
|
+
@body_hash = JSON.parse(http_response.body.to_s)
|
26
|
+
@action = @body_hash['action']
|
27
|
+
@application = @body_hash['application']
|
28
|
+
@params = @body_hash['params']
|
29
|
+
@uri = @body_hash['uri']
|
30
|
+
@entities = @body_hash['entities']
|
31
|
+
@data = @body_hash['data']
|
32
|
+
@timestamp = @body_hash['timestamp']
|
33
|
+
@duration = @body_hash['duration']
|
34
|
+
@organization = @body_hash['organization']
|
35
|
+
@applicationName = @body_hash['applicationName']
|
36
|
+
@cursor = @body_hash['cursor']
|
37
|
+
@count = @body_hash['count']
|
38
|
+
end
|
39
|
+
|
40
|
+
def to_s
|
41
|
+
@body.to_s
|
42
|
+
end
|
43
|
+
|
44
|
+
def inspect
|
45
|
+
"#{self.class.name}(code: #{@code}, body: #{@body}, action: #{@action},
|
46
|
+
application: #{@application}, params: #{@params}, uri: #{@uri}, entities: #{@entities},
|
47
|
+
data: #{@data}, timestamp: #{@timestamp}, duration: #{@duration}, organization: #{@organization},
|
48
|
+
applicationName: #{@applicationName}, cursor: #{@cursor}, count: #{@count})"
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
data/lib/easemob/messages.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
module Easemob
|
2
|
+
autoload(:ChatMessage, File.expand_path('message/chat_message', __dir__))
|
2
3
|
module Messages
|
3
4
|
def message_to(target, target_type: :users, text:,
|
4
5
|
from: nil, ext: nil)
|
@@ -6,7 +7,7 @@ module Easemob
|
|
6
7
|
msg: { type: :txt, txt: text } }
|
7
8
|
jd[:from] = from unless from.nil?
|
8
9
|
jd[:ext] = ext unless ext.nil?
|
9
|
-
request :post, 'messages', json: jd
|
10
|
+
ChatMessage.new request :post, 'messages', json: jd
|
10
11
|
end
|
11
12
|
|
12
13
|
def image_to(target, target_type: :users, url:, filename:,
|
@@ -17,7 +18,7 @@ module Easemob
|
|
17
18
|
jd[:from] = from unless from.nil?
|
18
19
|
jd[:size] = image_size unless image_size.nil?
|
19
20
|
jd[:ext] = ext unless ext.nil?
|
20
|
-
request :post, 'messages', json: jd
|
21
|
+
ChatMessage.new request :post, 'messages', json: jd
|
21
22
|
end
|
22
23
|
|
23
24
|
def audio_to(target, target_type: :users, url:, filename:, length:,
|
@@ -27,7 +28,7 @@ module Easemob
|
|
27
28
|
jd[:msg][:secret] = secret unless secret.nil?
|
28
29
|
jd[:from] = from unless from.nil?
|
29
30
|
jd[:ext] = ext unless ext.nil?
|
30
|
-
request :post, 'messages', json: jd
|
31
|
+
ChatMessage.new request :post, 'messages', json: jd
|
31
32
|
end
|
32
33
|
|
33
34
|
def video_to(target, target_type: :users, url:, filename:, length:, file_length:, thumb:,
|
@@ -39,7 +40,7 @@ module Easemob
|
|
39
40
|
jd[:msg][:thumb_secret] = thumb_secret unless thumb_secret.nil?
|
40
41
|
jd[:from] = from unless from.nil?
|
41
42
|
jd[:ext] = ext unless ext.nil?
|
42
|
-
request :post, 'messages', json: jd
|
43
|
+
ChatMessage.new request :post, 'messages', json: jd
|
43
44
|
end
|
44
45
|
|
45
46
|
def command_to(target, target_type: :users, action:,
|
@@ -48,7 +49,7 @@ module Easemob
|
|
48
49
|
msg: { type: :cmd, action: action } }
|
49
50
|
jd[:from] = from unless from.nil?
|
50
51
|
jd[:ext] = ext unless ext.nil?
|
51
|
-
request :post, 'messages', json: jd
|
52
|
+
ChatMessage.new request :post, 'messages', json: jd
|
52
53
|
end
|
53
54
|
end
|
54
55
|
end
|
data/lib/easemob/token.rb
CHANGED
@@ -5,7 +5,7 @@ module Easemob
|
|
5
5
|
http.post "#{Easemob.head_url}/token", json: { grant_type: 'client_credentials', client_id: Easemob.client_id, client_secret: Easemob.client_secret }
|
6
6
|
end
|
7
7
|
raise "Failed to refresh easemob token: #{res}" unless res.code == 200
|
8
|
-
write_to_store(JSON.parse(res.to_s))
|
8
|
+
write_to_store(JSON.parse(res.body.to_s))
|
9
9
|
read_from_store
|
10
10
|
end
|
11
11
|
|
data/lib/easemob/users.rb
CHANGED
@@ -1,89 +1,90 @@
|
|
1
1
|
module Easemob
|
2
|
+
autoload(:UserMessage, File.expand_path('message/user_message', __dir__))
|
2
3
|
module Users
|
3
4
|
def create_user(username, password, nickname: nil)
|
4
5
|
valid_username!(username)
|
5
6
|
jd = { username: username, password: password }
|
6
7
|
jd[:nickname] = nickname unless nickname.nil?
|
7
|
-
request :post, 'users', json: jd
|
8
|
+
UserMessage.new request :post, 'users', json: jd
|
8
9
|
end
|
9
10
|
|
10
11
|
def create_users(users)
|
11
12
|
users.map { |user| valid_username!(user['username'] || user[:username]) }
|
12
|
-
request :post, 'users', json: users
|
13
|
+
UserMessage.new request :post, 'users', json: users
|
13
14
|
end
|
14
15
|
|
15
16
|
def get_user(username)
|
16
|
-
request :get, "users/#{username}"
|
17
|
+
UserMessage.new request :get, "users/#{username}"
|
17
18
|
end
|
18
19
|
|
19
20
|
def query_users(limit = 50, cursor: nil)
|
20
21
|
params = { limit: limit }
|
21
22
|
params[:cursor] = cursor unless cursor.nil?
|
22
|
-
request :get, 'users', params: params
|
23
|
+
UserMessage.new request :get, 'users', params: params
|
23
24
|
end
|
24
25
|
|
25
26
|
def delete_user(username)
|
26
|
-
request :delete, "users/#{username}"
|
27
|
+
UserMessage.new request :delete, "users/#{username}"
|
27
28
|
end
|
28
29
|
|
29
30
|
def delete_users!(number = 100)
|
30
|
-
request :delete, 'users', params: { limit: number }
|
31
|
+
UserMessage.new request :delete, 'users', params: { limit: number }
|
31
32
|
end
|
32
33
|
|
33
34
|
def reset_user_password(username, newpassword:)
|
34
|
-
request :put, "users/#{username}/password", json: { newpassword: newpassword }
|
35
|
+
UserMessage.new request :put, "users/#{username}/password", json: { newpassword: newpassword }
|
35
36
|
end
|
36
37
|
|
37
38
|
def set_user_nickname(username, nickname:)
|
38
|
-
request :put, "users/#{username}", json: { nickname: nickname }
|
39
|
+
UserMessage.new request :put, "users/#{username}", json: { nickname: nickname }
|
39
40
|
end
|
40
41
|
|
41
42
|
def add_user_friend(owner_username, friend_username:)
|
42
|
-
request :post, "users/#{owner_username}/contacts/users/#{friend_username}"
|
43
|
+
UserMessage.new request :post, "users/#{owner_username}/contacts/users/#{friend_username}"
|
43
44
|
end
|
44
45
|
|
45
46
|
def remove_user_friend(owner_username, friend_username:)
|
46
|
-
request :delete, "users/#{owner_username}/contacts/users/#{friend_username}"
|
47
|
+
UserMessage.new request :delete, "users/#{owner_username}/contacts/users/#{friend_username}"
|
47
48
|
end
|
48
49
|
|
49
50
|
def query_user_friends(owner_username)
|
50
|
-
request :get, "users/#{owner_username}/contacts/users"
|
51
|
+
UserMessage.new request :get, "users/#{owner_username}/contacts/users"
|
51
52
|
end
|
52
53
|
|
53
54
|
def add_to_user_block(owner_username, to_block_usernames:)
|
54
|
-
request :post, "users/#{owner_username}/blocks/users", json: { usernames: [*to_block_usernames] }
|
55
|
+
UserMessage.new request :post, "users/#{owner_username}/blocks/users", json: { usernames: [*to_block_usernames] }
|
55
56
|
end
|
56
57
|
|
57
58
|
def remove_from_user_block(owner_username, blocked_username:)
|
58
|
-
request :delete, "users/#{owner_username}/blocks/users/#{blocked_username}"
|
59
|
+
UserMessage.new request :delete, "users/#{owner_username}/blocks/users/#{blocked_username}"
|
59
60
|
end
|
60
61
|
|
61
62
|
def query_user_blocks(owner_username)
|
62
|
-
request :get, "users/#{owner_username}/blocks/users"
|
63
|
+
UserMessage.new request :get, "users/#{owner_username}/blocks/users"
|
63
64
|
end
|
64
65
|
|
65
66
|
def get_user_status(username)
|
66
|
-
request :get, "users/#{username}/status"
|
67
|
+
UserMessage.new request :get, "users/#{username}/status"
|
67
68
|
end
|
68
69
|
|
69
70
|
def get_user_offline_msg_count(owner_username)
|
70
|
-
request :get, "users/#{owner_username}/offline_msg_count"
|
71
|
+
UserMessage.new request :get, "users/#{owner_username}/offline_msg_count"
|
71
72
|
end
|
72
73
|
|
73
74
|
def get_user_offline_msg_status(username, msg_id)
|
74
|
-
request :get, "users/#{username}/offline_msg_status/#{msg_id}"
|
75
|
+
UserMessage.new request :get, "users/#{username}/offline_msg_status/#{msg_id}"
|
75
76
|
end
|
76
77
|
|
77
78
|
def deactivate_user(username)
|
78
|
-
request :post, "users/#{username}/deactivate"
|
79
|
+
UserMessage.new request :post, "users/#{username}/deactivate"
|
79
80
|
end
|
80
81
|
|
81
82
|
def activate_user(username)
|
82
|
-
request :post, "users/#{username}/activate"
|
83
|
+
UserMessage.new request :post, "users/#{username}/activate"
|
83
84
|
end
|
84
85
|
|
85
86
|
def disconnect_user(username)
|
86
|
-
request :get, "users/#{username}/disconnect"
|
87
|
+
UserMessage.new request :get, "users/#{username}/disconnect"
|
87
88
|
end
|
88
89
|
|
89
90
|
private
|
data/lib/easemob/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: easemob
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Guo
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
30
30
|
R5k6Ma92sW8jupX4cqbSu9rntdVQkNRpoHIrfU0MZT0cKsg/D1zMteylxrO3KMsz
|
31
31
|
SPQRv+nrI1J0zevFqb8010heoR8SDyUA0Mm3+Q==
|
32
32
|
-----END CERTIFICATE-----
|
33
|
-
date: 2016-
|
33
|
+
date: 2016-12-05 00:00:00.000000000 Z
|
34
34
|
dependencies:
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: http
|
@@ -133,6 +133,11 @@ files:
|
|
133
133
|
- lib/easemob/chatrooms.rb
|
134
134
|
- lib/easemob/fileoperation.rb
|
135
135
|
- lib/easemob/groups.rb
|
136
|
+
- lib/easemob/message/base_message.rb
|
137
|
+
- lib/easemob/message/chat_message.rb
|
138
|
+
- lib/easemob/message/fileoperation_message.rb
|
139
|
+
- lib/easemob/message/group_message.rb
|
140
|
+
- lib/easemob/message/user_message.rb
|
136
141
|
- lib/easemob/messages.rb
|
137
142
|
- lib/easemob/token.rb
|
138
143
|
- lib/easemob/users.rb
|
@@ -157,7 +162,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
157
162
|
version: '0'
|
158
163
|
requirements: []
|
159
164
|
rubyforge_project:
|
160
|
-
rubygems_version: 2.6.
|
165
|
+
rubygems_version: 2.6.8
|
161
166
|
signing_key:
|
162
167
|
specification_version: 4
|
163
168
|
summary: An unofficial Easemob IM(instant message) service integration gem
|
metadata.gz.sig
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
�
|
2
|
-
|
3
|
-
|
1
|
+
aL'��q.���'�ŝK��m*0�ħ��'P�H�'�T�7�whˀݗ��a�a������h|h���q9�Ơi3��j�#�<�QGԩL[��5��A8�[�u
|
2
|
+
��T_�a=ls���4
|
3
|
+
�#�eۇ��5�ʝyw�\��F��F�bkW?>z!��D��A� �a�mэN��� -oa����c,�e�T16��OV�g�}y�E��Z�0�;0��������toT���sb�ީ$�~�ޕfWW�����
|