stream-chat-ruby 2.4.0 → 2.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ea550365bc302aeb9097c2f2819a0dd6c5ead1fd1064a7c12842de4670e871d4
4
- data.tar.gz: b01a528a334338edfd9f05e8f3aa40e682cabd3de40e6356b162f9f0cc791e64
3
+ metadata.gz: cff8888b576ad92ca17c3275504e585b1490e3935e7d86595aad795dfea67a7d
4
+ data.tar.gz: 8aa309ce84be59f966edee13e0e8957f863f59c535bc8df9d41d90484e8b1cb5
5
5
  SHA512:
6
- metadata.gz: 3f12aa7bec1853b9a91e3b9a63a6f296aca373bb8f24a719a0728959e68cbe10e4b440bc7056d730bfa36f3e2a0c5c1b4db1b566cc51159a09bad3eac4694747
7
- data.tar.gz: 9982645b54641b15fd7d8deae0049d90aca66defcaba509e19be7f0c27dfd42fec8bba5221b0ca961251fc8c084c61a1793fcc689df853ae09a570b0358ac605
6
+ metadata.gz: 9ca7b965ba2ca2fdffcb3ff667d93a1081e5aa15f40d3aeb9a167c945f26e54d3e773e826ca583c445c0da02acb5f67f3c450d7fc3fce98fcb958acd7e9077cf
7
+ data.tar.gz: 98b040deb4906b952d393244fb228843e77d669481104fa0ca75512cdcaacfccd75d8733c9ade31854366ab066ff6c58a54d2ff3c89e6c590d5a8c9fdc17c888
@@ -18,6 +18,7 @@ jobs:
18
18
  - env:
19
19
  STREAM_CHAT_API_KEY: ${{ secrets.STREAM_CHAT_API_KEY }}
20
20
  STREAM_CHAT_API_SECRET: ${{ secrets.STREAM_CHAT_API_SECRET }}
21
+ BLOCKLIST: ${{ matrix.ruby == '2.7' }}
21
22
  run: |
22
23
  gem install bundler
23
24
  bundle install --jobs 4 --retry 3
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## February 3rd, 2021 - 2.5.0
2
+ - Add channel partial update
3
+ - Increase convenience in query members
4
+ - Improve internal symbol conversions
5
+
1
6
  ## January 20th, 2021 - 2.4.0
2
7
  - Add query_members to channel
3
8
  - Use post endpoint for query channels instead of get
data/README.md CHANGED
@@ -131,8 +131,16 @@ chan.unban_user('bob-1')
131
131
  # Query channel state
132
132
  chan.query({'messages' => { 'limit' => 10, 'id_lte' => m1['id']}})
133
133
 
134
+ # Update metadata (overwrite)
135
+ chan.update({'motd' => 'one apple a day....'})
136
+
137
+ # Update partial
138
+ # 1. key-value pairs to set
139
+ # 2. keys to unset (remove)
140
+ chan.update_partial({color: 'blue', age: 30}, ['motd'])
141
+
134
142
  # Query channel members
135
- chan.query_members({name: {'$autocomplete': 'test'}}, {last_created_at: -1}, offset: 5, limit: 5)
143
+ chan.query_members({name: {'$autocomplete': 'test'}}, sort: {last_created_at: -1}, offset: 5, limit: 5)
136
144
  ```
137
145
 
138
146
  ### Messages
@@ -25,7 +25,7 @@ module StreamChat
25
25
  end
26
26
 
27
27
  def send_message(message, user_id)
28
- payload = { "message": add_user_id(message, user_id) }
28
+ payload = { message: add_user_id(message, user_id) }
29
29
  @client.post("#{url}/message", data: payload)
30
30
  end
31
31
 
@@ -35,24 +35,24 @@ module StreamChat
35
35
  end
36
36
 
37
37
  def send_reaction(message_id, reaction, user_id)
38
- payload = { "reaction": add_user_id(reaction, user_id) }
38
+ payload = { reaction: add_user_id(reaction, user_id) }
39
39
  @client.post("messages/#{message_id}/reaction", data: payload)
40
40
  end
41
41
 
42
42
  def delete_reaction(message_id, reaction_type, user_id)
43
43
  @client.delete(
44
44
  "messages/#{message_id}/reaction/#{reaction_type}",
45
- params: { "user_id": user_id }
45
+ params: { user_id: user_id }
46
46
  )
47
47
  end
48
48
 
49
49
  def create(user_id)
50
- @custom_data['created_by'] = { "id": user_id }
50
+ @custom_data['created_by'] = { id: user_id }
51
51
  query(watch: false, state: false, presence: false)
52
52
  end
53
53
 
54
54
  def query(**options)
55
- payload = { "state": true, "data": @custom_data }.merge(options)
55
+ payload = { state: true, data: @custom_data }.merge(options)
56
56
  url = "channels/#{@channel_type}"
57
57
  url = "#{url}/#{@id}" unless @id.nil?
58
58
 
@@ -61,7 +61,7 @@ module StreamChat
61
61
  state
62
62
  end
63
63
 
64
- def query_members(filter_conditions: {}, sort: nil, **options)
64
+ def query_members(filter_conditions = {}, sort: nil, **options)
65
65
  params = {}.merge(options).merge({
66
66
  id: @id,
67
67
  type: @channel_type,
@@ -80,10 +80,17 @@ module StreamChat
80
80
  end
81
81
 
82
82
  def update(channel_data, update_message = nil)
83
- payload = { "data": channel_data, "message": update_message }
83
+ payload = { data: channel_data, message: update_message }
84
84
  @client.post(url, data: payload)
85
85
  end
86
86
 
87
+ def update_partial(set = nil, unset = nil)
88
+ raise StreamChannelException 'set or unset is needed' if set.nil? && unset.nil?
89
+
90
+ payload = { set: set, unset: unset }
91
+ @client.patch(url, data: payload)
92
+ end
93
+
87
94
  def delete
88
95
  @client.delete(url)
89
96
  end
@@ -93,23 +100,23 @@ module StreamChat
93
100
  end
94
101
 
95
102
  def add_members(user_ids)
96
- @client.post(url, data: { "add_members": user_ids })
103
+ @client.post(url, data: { add_members: user_ids })
97
104
  end
98
105
 
99
106
  def invite_members(user_ids)
100
- @client.post(url, data: { "invites": user_ids })
107
+ @client.post(url, data: { invites: user_ids })
101
108
  end
102
109
 
103
110
  def add_moderators(user_ids)
104
- @client.post(url, data: { "add_moderators": user_ids })
111
+ @client.post(url, data: { add_moderators: user_ids })
105
112
  end
106
113
 
107
114
  def remove_members(user_ids)
108
- @client.post(url, data: { "remove_members": user_ids })
115
+ @client.post(url, data: { remove_members: user_ids })
109
116
  end
110
117
 
111
118
  def demote_moderators(user_ids)
112
- @client.post(url, data: { "demote_moderators": user_ids })
119
+ @client.post(url, data: { demote_moderators: user_ids })
113
120
  end
114
121
 
115
122
  def mark_read(user_id, **options)
@@ -150,17 +157,17 @@ module StreamChat
150
157
  end
151
158
 
152
159
  def delete_file(url)
153
- @client.delete("#{self.url}/file", params: { "url": url })
160
+ @client.delete("#{self.url}/file", params: { url: url })
154
161
  end
155
162
 
156
163
  def delete_image(url)
157
- @client.delete("#{self.url}/image", params: { "url": url })
164
+ @client.delete("#{self.url}/image", params: { url: url })
158
165
  end
159
166
 
160
167
  private
161
168
 
162
169
  def add_user_id(payload, user_id)
163
- payload.merge({ "user": { "id": user_id } })
170
+ payload.merge({ user: { id: user_id } })
164
171
  end
165
172
  end
166
173
  end
@@ -60,22 +60,22 @@ module StreamChat
60
60
  end
61
61
 
62
62
  def flag_message(id, **options)
63
- payload = { 'target_message_id': id }.merge(options)
63
+ payload = { target_message_id: id }.merge(options)
64
64
  post('moderation/flag', data: payload)
65
65
  end
66
66
 
67
67
  def unflag_message(id, **options)
68
- payload = { 'target_message_id': id }.merge(options)
68
+ payload = { target_message_id: id }.merge(options)
69
69
  post('moderation/unflag', data: payload)
70
70
  end
71
71
 
72
72
  def flag_user(id, **options)
73
- payload = { 'target_user_id': id }.merge(options)
73
+ payload = { target_user_id: id }.merge(options)
74
74
  post('moderation/flag', data: payload)
75
75
  end
76
76
 
77
77
  def unflag_user(id, **options)
78
- payload = { 'target_user_id': id }.merge(options)
78
+ payload = { target_user_id: id }.merge(options)
79
79
  post('moderation/unflag', data: payload)
80
80
  end
81
81
 
@@ -85,11 +85,11 @@ module StreamChat
85
85
 
86
86
  def search(filter_conditions, query, **options)
87
87
  params = options.merge({
88
- "filter_conditions": filter_conditions,
89
- "query": query
88
+ filter_conditions: filter_conditions,
89
+ query: query
90
90
  })
91
91
 
92
- get('search', params: { "payload": params.to_json })
92
+ get('search', params: { payload: params.to_json })
93
93
  end
94
94
 
95
95
  def update_users(users)
@@ -100,7 +100,7 @@ module StreamChat
100
100
 
101
101
  payload[id] = user
102
102
  end
103
- post('users', data: { 'users': payload })
103
+ post('users', data: { users: payload })
104
104
  end
105
105
 
106
106
  def update_user(user)
@@ -108,7 +108,7 @@ module StreamChat
108
108
  end
109
109
 
110
110
  def update_users_partial(updates)
111
- patch('users', data: { 'users': updates })
111
+ patch('users', data: { users: updates })
112
112
  end
113
113
 
114
114
  def update_user_partial(update)
@@ -132,34 +132,34 @@ module StreamChat
132
132
  end
133
133
 
134
134
  def ban_user(target_id, **options)
135
- payload = { 'target_user_id': target_id }.merge(options)
135
+ payload = { target_user_id: target_id }.merge(options)
136
136
  post('moderation/ban', data: payload)
137
137
  end
138
138
 
139
139
  def unban_user(target_id, **options)
140
- params = { 'target_user_id': target_id }.merge(options)
140
+ params = { target_user_id: target_id }.merge(options)
141
141
  delete('moderation/ban', params: params)
142
142
  end
143
143
 
144
144
  def mute_user(target_id, user_id)
145
- payload = { 'target_id': target_id, 'user_id': user_id }
145
+ payload = { target_id: target_id, user_id: user_id }
146
146
  post('moderation/mute', data: payload)
147
147
  end
148
148
 
149
149
  def unmute_user(target_id, user_id)
150
- payload = { 'target_id': target_id, 'user_id': user_id }
150
+ payload = { target_id: target_id, user_id: user_id }
151
151
  post('moderation/unmute', data: payload)
152
152
  end
153
153
 
154
154
  def mark_all_read(user_id)
155
- payload = { 'user': { 'id': user_id } }
155
+ payload = { user: { id: user_id } }
156
156
  post('channels/read', data: payload)
157
157
  end
158
158
 
159
159
  def update_message(message)
160
160
  raise ArgumentError 'message must have an id' unless message.key? 'id'
161
161
 
162
- post("messages/#{message['id']}", data: { 'message': message })
162
+ post("messages/#{message['id']}", data: { message: message })
163
163
  end
164
164
 
165
165
  def delete_message(message_id)
@@ -168,14 +168,14 @@ module StreamChat
168
168
 
169
169
  def query_users(filter_conditions, sort: nil, **options)
170
170
  params = options.merge({
171
- "filter_conditions": filter_conditions,
172
- "sort": get_sort_fields(sort)
171
+ filter_conditions: filter_conditions,
172
+ sort: get_sort_fields(sort)
173
173
  })
174
- get('users', params: { "payload": params.to_json })
174
+ get('users', params: { payload: params.to_json })
175
175
  end
176
176
 
177
177
  def query_channels(filter_conditions, sort: nil, **options)
178
- data = { "state": true, "watch": false, "presence": false }
178
+ data = { state: true, watch: false, presence: false }
179
179
  data = data.merge(options).merge({
180
180
  filter_conditions: filter_conditions,
181
181
  sort: get_sort_fields(sort)
@@ -218,18 +218,18 @@ module StreamChat
218
218
 
219
219
  def add_device(device_id, push_provider, user_id)
220
220
  post('devices', data: {
221
- "id": device_id,
222
- "push_provider": push_provider,
223
- "user_id": user_id
221
+ id: device_id,
222
+ push_provider: push_provider,
223
+ user_id: user_id
224
224
  })
225
225
  end
226
226
 
227
227
  def delete_device(device_id, user_id)
228
- delete('devices', params: { "id": device_id, "user_id": user_id })
228
+ delete('devices', params: { id: device_id, user_id: user_id })
229
229
  end
230
230
 
231
231
  def get_devices(user_id)
232
- get('devices', params: { "user_id": user_id })
232
+ get('devices', params: { user_id: user_id })
233
233
  end
234
234
 
235
235
  def verify_webhook(request_body, x_signature)
@@ -246,11 +246,11 @@ module StreamChat
246
246
  end
247
247
 
248
248
  def create_blocklist(name, words)
249
- post('blocklists', data: { "name": name, "words": words })
249
+ post('blocklists', data: { name: name, words: words })
250
250
  end
251
251
 
252
252
  def update_blocklist(name, words)
253
- put("blocklists/#{name}", data: { "words": words })
253
+ put("blocklists/#{name}", data: { words: words })
254
254
  end
255
255
 
256
256
  def delete_blocklist(name)
@@ -258,7 +258,7 @@ module StreamChat
258
258
  end
259
259
 
260
260
  def export_channels(*channels)
261
- post('export_channels', data: { "channels": channels })
261
+ post('export_channels', data: { channels: channels })
262
262
  end
263
263
 
264
264
  def get_export_channel_status(task_id)
@@ -305,7 +305,7 @@ module StreamChat
305
305
  end
306
306
 
307
307
  def check_sqs(sqs_key = nil, sqs_secret = nil, sqs_url = nil)
308
- post('check_sqs', data: { "sqs_key": sqs_key, "sqs_secret": sqs_secret, "sqs_url": sqs_url })
308
+ post('check_sqs', data: { sqs_key: sqs_key, sqs_secret: sqs_secret, sqs_url: sqs_url })
309
309
  end
310
310
 
311
311
  private
@@ -3,5 +3,5 @@
3
3
  # lib/version.rb
4
4
 
5
5
  module StreamChat
6
- VERSION = '2.4.0'
6
+ VERSION = '2.5.0'
7
7
  end
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.0
4
+ version: 2.5.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-20 00:00:00.000000000 Z
11
+ date: 2021-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday