stream-chat-ruby 2.3.0 → 2.4.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
- data/CHANGELOG.md +5 -0
- data/README.md +4 -2
- data/lib/stream-chat/channel.rb +20 -0
- data/lib/stream-chat/client.rb +8 -15
- data/lib/stream-chat/util.rb +11 -0
- data/lib/stream-chat/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ea550365bc302aeb9097c2f2819a0dd6c5ead1fd1064a7c12842de4670e871d4
|
4
|
+
data.tar.gz: b01a528a334338edfd9f05e8f3aa40e682cabd3de40e6356b162f9f0cc791e64
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f12aa7bec1853b9a91e3b9a63a6f296aca373bb8f24a719a0728959e68cbe10e4b440bc7056d730bfa36f3e2a0c5c1b4db1b566cc51159a09bad3eac4694747
|
7
|
+
data.tar.gz: 9982645b54641b15fd7d8deae0049d90aca66defcaba509e19be7f0c27dfd42fec8bba5221b0ca961251fc8c084c61a1793fcc689df853ae09a570b0358ac605
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -28,9 +28,8 @@ gem install stream-chat-ruby
|
|
28
28
|
|
29
29
|
### Supported features
|
30
30
|
|
31
|
-
- Chat channels
|
31
|
+
- Chat channel type, channels and members
|
32
32
|
- Messages
|
33
|
-
- Chat channel types
|
34
33
|
- User management
|
35
34
|
- Moderation API
|
36
35
|
- Push configuration
|
@@ -131,6 +130,9 @@ chan.unban_user('bob-1')
|
|
131
130
|
|
132
131
|
# Query channel state
|
133
132
|
chan.query({'messages' => { 'limit' => 10, 'id_lte' => m1['id']}})
|
133
|
+
|
134
|
+
# Query channel members
|
135
|
+
chan.query_members({name: {'$autocomplete': 'test'}}, {last_created_at: -1}, offset: 5, limit: 5)
|
134
136
|
```
|
135
137
|
|
136
138
|
### Messages
|
data/lib/stream-chat/channel.rb
CHANGED
@@ -1,12 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'stream-chat/errors'
|
4
|
+
require 'stream-chat/util'
|
4
5
|
|
5
6
|
module StreamChat
|
6
7
|
class Channel # rubocop:todo Metrics/ClassLength # rubocop:todo Style/Documentation
|
7
8
|
attr_reader :id
|
8
9
|
attr_reader :channel_type
|
9
10
|
attr_reader :custom_data
|
11
|
+
attr_reader :members
|
10
12
|
|
11
13
|
def initialize(client, channel_type, channel_id = nil, custom_data = nil)
|
12
14
|
@channel_type = channel_type
|
@@ -59,6 +61,24 @@ module StreamChat
|
|
59
61
|
state
|
60
62
|
end
|
61
63
|
|
64
|
+
def query_members(filter_conditions: {}, sort: nil, **options)
|
65
|
+
params = {}.merge(options).merge({
|
66
|
+
id: @id,
|
67
|
+
type: @channel_type,
|
68
|
+
filter_conditions: filter_conditions,
|
69
|
+
sort: get_sort_fields(sort)
|
70
|
+
})
|
71
|
+
|
72
|
+
if @id == '' && @members.length.positive?
|
73
|
+
params['members'] = []
|
74
|
+
@members&.each do |m|
|
75
|
+
params['members'] << m['user'].nil? ? m['user_id'] : m['user']['id']
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
@client.get('members', params: { payload: params.to_json })
|
80
|
+
end
|
81
|
+
|
62
82
|
def update(channel_data, update_message = nil)
|
63
83
|
payload = { "data": channel_data, "message": update_message }
|
64
84
|
@client.post(url, data: payload)
|
data/lib/stream-chat/client.rb
CHANGED
@@ -7,6 +7,7 @@ require 'jwt'
|
|
7
7
|
require 'stream-chat/channel'
|
8
8
|
require 'stream-chat/errors'
|
9
9
|
require 'stream-chat/version'
|
10
|
+
require 'stream-chat/util'
|
10
11
|
|
11
12
|
module StreamChat
|
12
13
|
DEFAULT_BLOCKLIST = 'profanity_en_2020_v1'
|
@@ -166,28 +167,20 @@ module StreamChat
|
|
166
167
|
end
|
167
168
|
|
168
169
|
def query_users(filter_conditions, sort: nil, **options)
|
169
|
-
sort_fields = []
|
170
|
-
sort&.each do |k, v|
|
171
|
-
sort_fields << { "field": k, "direction": v }
|
172
|
-
end
|
173
170
|
params = options.merge({
|
174
171
|
"filter_conditions": filter_conditions,
|
175
|
-
"sort":
|
172
|
+
"sort": get_sort_fields(sort)
|
176
173
|
})
|
177
174
|
get('users', params: { "payload": params.to_json })
|
178
175
|
end
|
179
176
|
|
180
177
|
def query_channels(filter_conditions, sort: nil, **options)
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
"filter_conditions": filter_conditions,
|
188
|
-
"sort": sort_fields
|
189
|
-
})
|
190
|
-
get('channels', params: { "payload": params.to_json })
|
178
|
+
data = { "state": true, "watch": false, "presence": false }
|
179
|
+
data = data.merge(options).merge({
|
180
|
+
filter_conditions: filter_conditions,
|
181
|
+
sort: get_sort_fields(sort)
|
182
|
+
})
|
183
|
+
post('channels', data: data)
|
191
184
|
end
|
192
185
|
|
193
186
|
def create_channel_type(data)
|
data/lib/stream-chat/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stream-chat-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mircea Cosbuc
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-01-
|
11
|
+
date: 2021-01-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -99,6 +99,7 @@ files:
|
|
99
99
|
- lib/stream-chat/channel.rb
|
100
100
|
- lib/stream-chat/client.rb
|
101
101
|
- lib/stream-chat/errors.rb
|
102
|
+
- lib/stream-chat/util.rb
|
102
103
|
- lib/stream-chat/version.rb
|
103
104
|
- stream-chat.gemspec
|
104
105
|
homepage: http://github.com/GetStream/stream-chat-ruby
|