rocketchat 0.1.20 → 0.1.21
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/.rubocop.yml +6 -0
- data/CHANGELOG.md +4 -0
- data/lib/rocket_chat/gem_version.rb +1 -1
- data/lib/rocket_chat/messages/group.rb +32 -0
- data/lib/rocket_chat/messages/im.rb +49 -2
- data/lib/rocket_chat/messages/user.rb +5 -2
- data/lib/rocket_chat/user.rb +15 -0
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0414d925c282330700662c6a617328a2c91610c5969285da247c653a1b512133
|
4
|
+
data.tar.gz: db1fab6b741dd083488e1a1b60f36fff5130e5cff10ee88ed2847ef4853cee14
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 002475521b99ee9dcc766622ed1630c08daf488ba68c0f10dd620b568882b022aace8e79a6f2419b8fa6d8780290ea2df442b1537118d97415ca759cb53254bc
|
7
|
+
data.tar.gz: 6f896d0c30470e16702567320ed083c63d6cce9325734295bfd553d710f8669bfd11148d79c590a89465ba06f0e7be870c02679ddab01d60858be9af6ab7b9bb
|
data/.rubocop.yml
CHANGED
@@ -47,6 +47,9 @@ RSpec/MultipleExpectations:
|
|
47
47
|
RSpec/MultipleMemoizedHelpers:
|
48
48
|
Max: 15
|
49
49
|
|
50
|
+
RSpec/NestedGroups:
|
51
|
+
Max: 4
|
52
|
+
|
50
53
|
Style/ExponentialNotation:
|
51
54
|
Enabled: true
|
52
55
|
|
@@ -63,6 +66,9 @@ Style/NumericLiterals:
|
|
63
66
|
Exclude:
|
64
67
|
- "**/*_spec.rb"
|
65
68
|
|
69
|
+
Style/RedundantFetchBlock:
|
70
|
+
Enabled: true
|
71
|
+
|
66
72
|
Style/RedundantRegexpCharacterClass:
|
67
73
|
Enabled: true
|
68
74
|
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,10 @@
|
|
3
3
|
## Unreleased
|
4
4
|
- None
|
5
5
|
|
6
|
+
## [0.1.21](releases/tag/v0.1.21) - 2021-08-30
|
7
|
+
### Added
|
8
|
+
- [#36] Improve support for various REST APIs ([@abrom][])
|
9
|
+
|
6
10
|
## [0.1.20](releases/tag/v0.1.20) - 2021-03-29
|
7
11
|
### Added
|
8
12
|
- [#34] Support for channels.members and groups.members ([@alinavancea][])
|
@@ -57,6 +57,38 @@ module RocketChat
|
|
57
57
|
response['groups'].map { |hash| RocketChat::Room.new hash } if response['success']
|
58
58
|
end
|
59
59
|
|
60
|
+
# groups.listAll REST API
|
61
|
+
# @param [Integer] offset Query offset
|
62
|
+
# @param [Integer] count Query count/limit
|
63
|
+
# @param [Hash] sort Query field sort hash. eg `{ msgs: 1, name: -1 }`
|
64
|
+
# @param [Hash] fields Query fields to return. eg `{ name: 1, ro: 0 }`
|
65
|
+
# @return [Room[]]
|
66
|
+
# @raise [HTTPError, StatusError]
|
67
|
+
#
|
68
|
+
def list_all(offset: nil, count: nil, sort: nil, fields: nil, query: nil)
|
69
|
+
response = session.request_json(
|
70
|
+
'/api/v1/groups.listAll',
|
71
|
+
body: build_list_body(offset, count, sort, fields, query)
|
72
|
+
)
|
73
|
+
|
74
|
+
response['groups'].map { |hash| RocketChat::Room.new hash } if response['success']
|
75
|
+
end
|
76
|
+
|
77
|
+
#
|
78
|
+
# groups.online REST API
|
79
|
+
# @param [String] room_id Rocket.Chat room id
|
80
|
+
# @return [Users[]]
|
81
|
+
# @raise [HTTPError, StatusError]
|
82
|
+
#
|
83
|
+
def online(room_id: nil, name: nil)
|
84
|
+
response = session.request_json(
|
85
|
+
'/api/v1/groups.online',
|
86
|
+
body: room_params(room_id, name)
|
87
|
+
)
|
88
|
+
|
89
|
+
response['online'].map { |hash| RocketChat::User.new hash } if response['success']
|
90
|
+
end
|
91
|
+
|
60
92
|
# Keys for set_attr:
|
61
93
|
# * [String] description A room's description
|
62
94
|
# * [String] purpose Alias for description
|
@@ -6,6 +6,8 @@ module RocketChat
|
|
6
6
|
# Rocket.Chat Direct messages
|
7
7
|
#
|
8
8
|
class Im
|
9
|
+
include ListSupport
|
10
|
+
|
9
11
|
#
|
10
12
|
# @param [Session] session Session
|
11
13
|
#
|
@@ -16,18 +18,63 @@ module RocketChat
|
|
16
18
|
#
|
17
19
|
# im.create REST API
|
18
20
|
# @param [String] username Rocket.Chat username
|
21
|
+
# @param [String[]] usernames Array of Rocket.Chat usernames
|
22
|
+
# @param [Boolean] exclude_self Flag indicating whether the authenticated user should be included in the group
|
19
23
|
# @return [RocketChat::Room]
|
20
24
|
# @raise [HTTPError, StatusError]
|
21
25
|
#
|
22
|
-
def create(username:)
|
26
|
+
def create(username: nil, usernames: nil, exclude_self: false)
|
27
|
+
params =
|
28
|
+
if exclude_self
|
29
|
+
{ usernames: usernames.join(','), excludeSelf: true }
|
30
|
+
elsif usernames
|
31
|
+
{ usernames: usernames.join(',') }
|
32
|
+
else
|
33
|
+
{ username: username }
|
34
|
+
end
|
35
|
+
|
23
36
|
response = session.request_json(
|
24
37
|
'/api/v1/im.create',
|
25
38
|
method: :post,
|
26
|
-
body:
|
39
|
+
body: params
|
27
40
|
)
|
28
41
|
RocketChat::Room.new response['room']
|
29
42
|
end
|
30
43
|
|
44
|
+
#
|
45
|
+
# im.delete REST API
|
46
|
+
# @param [String] room_id Rocket.Chat direct message room ID
|
47
|
+
# @return [Boolean]
|
48
|
+
# @raise [HTTPError, StatusError]
|
49
|
+
#
|
50
|
+
def delete(room_id: nil)
|
51
|
+
session.request_json(
|
52
|
+
'/api/v1/im.delete',
|
53
|
+
method: :post,
|
54
|
+
body: { roomId: room_id },
|
55
|
+
upstreamed_errors: ['error-room-not-found']
|
56
|
+
)['success']
|
57
|
+
end
|
58
|
+
|
59
|
+
#
|
60
|
+
# im.list.everyone REST API
|
61
|
+
# @param [Integer] offset Query offset
|
62
|
+
# @param [Integer] count Query count/limit
|
63
|
+
# @param [Hash] sort Query field sort hash. eg `{ msgs: 1, name: -1 }`
|
64
|
+
# @param [Hash] fields Query fields to return. eg `{ name: 1, ro: 0 }`
|
65
|
+
# @param [Hash] query The query. `{ active: true, type: { '$in': ['name', 'general'] } }`
|
66
|
+
# @return [Room[]]
|
67
|
+
# @raise [HTTPError, StatusError]
|
68
|
+
#
|
69
|
+
def list_everyone(offset: nil, count: nil, sort: nil, fields: nil, query: nil)
|
70
|
+
response = session.request_json(
|
71
|
+
'/api/v1/im.list.everyone',
|
72
|
+
body: build_list_body(offset, count, sort, fields, query)
|
73
|
+
)
|
74
|
+
|
75
|
+
response['ims'].map { |hash| RocketChat::Room.new hash } if response['success']
|
76
|
+
end
|
77
|
+
|
31
78
|
#
|
32
79
|
# im.counters REST API
|
33
80
|
# @param [String] room_id Rocket.Chat roomId
|
@@ -114,13 +114,16 @@ module RocketChat
|
|
114
114
|
# users.info REST API
|
115
115
|
# @param [String] user_id Rocket.Chat user id
|
116
116
|
# @param [String] username Username
|
117
|
+
# @param [Boolean] include_rooms Whether to include rooms in the response.
|
118
|
+
# Requires calling user to have the `view-other-user-channels` permission
|
117
119
|
# @return [User]
|
118
120
|
# @raise [HTTPError, StatusError]
|
119
121
|
#
|
120
|
-
def info(user_id: nil, username: nil)
|
122
|
+
def info(user_id: nil, username: nil, include_rooms: false)
|
121
123
|
response = session.request_json(
|
122
124
|
'/api/v1/users.info',
|
123
|
-
body: user_params(user_id, username)
|
125
|
+
body: user_params(user_id, username)
|
126
|
+
.merge(include_rooms ? { fields: { userRooms: 1 }.to_json } : {}),
|
124
127
|
upstreamed_errors: ['error-invalid-user']
|
125
128
|
)
|
126
129
|
|
data/lib/rocket_chat/user.rb
CHANGED
@@ -70,6 +70,21 @@ module RocketChat
|
|
70
70
|
data['roles']
|
71
71
|
end
|
72
72
|
|
73
|
+
# User rooms
|
74
|
+
def rooms
|
75
|
+
return [] unless data['rooms'].is_a? Array
|
76
|
+
|
77
|
+
data['rooms'].map do |hash|
|
78
|
+
# the users.info API returns the rooms data with the subscription ID as `_id` and room ID as `rid`
|
79
|
+
if hash['rid']
|
80
|
+
hash['subscription_id'] = hash['_id']
|
81
|
+
hash['_id'] = hash['rid']
|
82
|
+
end
|
83
|
+
|
84
|
+
RocketChat::Room.new hash
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
73
88
|
def inspect
|
74
89
|
format(
|
75
90
|
'#<%<class_name>s:0x%<object_id>p @id="%<id>s" @username="%<username>s" @active="%<active>s">',
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rocketchat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.21
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- int512
|
8
8
|
- abrom
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2021-
|
12
|
+
date: 2021-08-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -204,7 +204,7 @@ homepage: https://github.com/abrom/rocketchat-ruby
|
|
204
204
|
licenses:
|
205
205
|
- MIT
|
206
206
|
metadata: {}
|
207
|
-
post_install_message:
|
207
|
+
post_install_message:
|
208
208
|
rdoc_options: []
|
209
209
|
require_paths:
|
210
210
|
- lib
|
@@ -222,8 +222,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
222
222
|
- !ruby/object:Gem::Version
|
223
223
|
version: '0'
|
224
224
|
requirements: []
|
225
|
-
rubygems_version: 3.
|
226
|
-
signing_key:
|
225
|
+
rubygems_version: 3.0.6
|
226
|
+
signing_key:
|
227
227
|
specification_version: 4
|
228
228
|
summary: Rocket.Chat REST API v1 for Ruby
|
229
229
|
test_files: []
|