stream-chat-ruby 2.12.0 → 2.16.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 22ca273c350cdc7bdc45e1bb675745d611c81a1d37c9f810ba1bfe50f81e2f5b
4
- data.tar.gz: 654923dd0d2796bef150ea6796200753c6ccfe3c3085a8997d1d540037f0af34
3
+ metadata.gz: 145d6248ef8e3ba19eabf0a6faaeeb75b944cfc4a0c21fb056fbf53a2b938990
4
+ data.tar.gz: 0000d699ce54ced068043adbb1f9f54c1f136be0ebf87d08df162202ee7e2ae8
5
5
  SHA512:
6
- metadata.gz: 927c84dea77c1cd39149760b30bb59e87205e867244a46b88368e68b375c3681914d079ee5e65075ee692cace35e798f52db343a77d7547873c7d3fd4989d905
7
- data.tar.gz: 1b25d0b7064a6d087f557fa45d1c676731382681fe33e7e60a1269b304f219abb80f066cf9fa319bb14cd3bd39f339a0517fa999b92ff90ff2c0dd7aaea823c7
6
+ metadata.gz: 83857f5388fdf6b40c80c972a0d5c721d230d593edf243a282b76d181643cd0ab3e6337b00dda5c78846958542d4fc18e9f635450f85b66dc4442dc703e96c06
7
+ data.tar.gz: 6686e2291b956bcfcdcdd95c233c225ee5d46be8fe06e529a49ffc5b11b3546553690f3bd647f1b9784312d0c1ff9615cbc98316f414b076c02a4853ec09e256
@@ -17,9 +17,9 @@ jobs:
17
17
  ruby-version: ${{ matrix.ruby }}
18
18
  bundler-cache: true
19
19
 
20
+ - run: bundle exec rake rubocop
20
21
  - env:
21
22
  STREAM_CHAT_API_KEY: ${{ secrets.STREAM_CHAT_API_KEY }}
22
23
  STREAM_CHAT_API_SECRET: ${{ secrets.STREAM_CHAT_API_SECRET }}
23
- run: |
24
- bundle exec rake rubocop
25
- bundle exec rake test
24
+ STREAM_CHAT_API_HOST: ${{ secrets.STREAM_CHAT_API_HOST }}
25
+ run: bundle exec rake test
data/CHANGELOG.md CHANGED
@@ -1,9 +1,39 @@
1
+ ## December 1st, 2021 - 2.16.0
2
+
3
+ - Add permissions v2 APIs
4
+
5
+ ## November 25th, 2021 - 2.15.0
6
+
7
+ - Add configuration support for channel truncate
8
+ - truncated_at: to truncate channel up to given time
9
+ - message: a system message to be added via truncation
10
+ - skip_push: don't send a push notification for system message
11
+ - hard_delete: true if truncation should delete messages instead of hiding
12
+
13
+ ## November 24th, 2021 - 2.14.0
14
+
15
+ - Add new flags for export channels
16
+ - clear_deleted_message_text (default: false)
17
+ - include_truncated_messages (default: false)
18
+
19
+ ## November 17th, 2021 - 2.13.0
20
+
21
+ - Add support for shadow banning user
22
+ - shadow_ban
23
+ - remove_shadow_ban
24
+ - Add support for pinning messages
25
+ - pin_message
26
+ - unpin_message
27
+ - Add support for partial updating messages
28
+ - update_message_partial
29
+ - Add support for updating channel ownership for Deleted Users
30
+
1
31
  ## November 1st, 2021 - 2.12.0
2
32
 
3
33
  - Add support for async endpoints
4
34
  - get_task
5
35
  - delete_channels
6
- _ delete_users
36
+ - delete_users
7
37
 
8
38
  ## October 22nd, 2021 - 2.11.3
9
39
 
@@ -95,8 +95,8 @@ module StreamChat
95
95
  @client.delete(url)
96
96
  end
97
97
 
98
- def truncate
99
- @client.post("#{url}/truncate")
98
+ def truncate(**options)
99
+ @client.post("#{url}/truncate", data: options)
100
100
  end
101
101
 
102
102
  def add_members(user_ids)
@@ -115,6 +115,10 @@ module StreamChat
115
115
  @client.post(url, data: { remove_members: user_ids })
116
116
  end
117
117
 
118
+ def assign_roles(members, message = nil)
119
+ @client.post(url, data: { assign_roles: members, message: message })
120
+ end
121
+
118
122
  def demote_moderators(user_ids)
119
123
  @client.post(url, data: { demote_moderators: user_ids })
120
124
  end
@@ -160,6 +160,16 @@ module StreamChat
160
160
  delete('moderation/ban', params: params)
161
161
  end
162
162
 
163
+ def shadow_ban(target_id, **options)
164
+ payload = { target_user_id: target_id, shadow: true }.merge(options)
165
+ post('moderation/ban', data: payload)
166
+ end
167
+
168
+ def remove_shadow_ban(target_id, **options)
169
+ params = { target_user_id: target_id, shadow: true }.merge(options)
170
+ delete('moderation/ban', params: params)
171
+ end
172
+
163
173
  def mute_user(target_id, user_id)
164
174
  payload = { target_id: target_id, user_id: user_id }
165
175
  post('moderation/mute', data: payload)
@@ -175,12 +185,37 @@ module StreamChat
175
185
  post('channels/read', data: payload)
176
186
  end
177
187
 
188
+ def pin_message(message_id, user_id, expiration: nil)
189
+ updates = {
190
+ set: {
191
+ pinned: true,
192
+ pin_expires: expiration
193
+ }
194
+ }
195
+ update_message_partial(message_id, updates, user_id: user_id)
196
+ end
197
+
198
+ def unpin_message(message_id, user_id)
199
+ updates = {
200
+ set: {
201
+ pinned: false
202
+ }
203
+ }
204
+ update_message_partial(message_id, updates, user_id: user_id)
205
+ end
206
+
178
207
  def update_message(message)
179
208
  raise ArgumentError 'message must have an id' unless message.key? 'id'
180
209
 
181
210
  post("messages/#{message['id']}", data: { message: message })
182
211
  end
183
212
 
213
+ def update_message_partial(message_id, updates, user_id: nil, **options)
214
+ params = updates.merge(options)
215
+ params['user'] = { id: user_id } if user_id
216
+ put("messages/#{message_id}", data: params)
217
+ end
218
+
184
219
  def delete_message(message_id)
185
220
  delete("messages/#{message_id}")
186
221
  end
@@ -287,8 +322,8 @@ module StreamChat
287
322
  delete("blocklists/#{name}")
288
323
  end
289
324
 
290
- def export_channels(*channels)
291
- post('export_channels', data: { channels: channels })
325
+ def export_channels(*channels, **options)
326
+ post('export_channels', data: { channels: channels, **options })
292
327
  end
293
328
 
294
329
  def get_export_channel_status(task_id)
@@ -394,6 +429,38 @@ module StreamChat
394
429
  get('commands')
395
430
  end
396
431
 
432
+ def list_permissions
433
+ get('permissions')
434
+ end
435
+
436
+ def get_permission(id)
437
+ get("permissions/#{id}")
438
+ end
439
+
440
+ def create_permission(permission)
441
+ post('permissions', data: permission)
442
+ end
443
+
444
+ def update_permission(id, permission)
445
+ put("permissions/#{id}", data: permission)
446
+ end
447
+
448
+ def delete_permission(id)
449
+ delete("permissions/#{id}")
450
+ end
451
+
452
+ def create_role(name)
453
+ post('roles', data: { name: name })
454
+ end
455
+
456
+ def delete_role(name)
457
+ delete("roles/#{name}")
458
+ end
459
+
460
+ def list_roles
461
+ get('roles')
462
+ end
463
+
397
464
  private
398
465
 
399
466
  def get_default_params
@@ -3,5 +3,5 @@
3
3
  # lib/version.rb
4
4
 
5
5
  module StreamChat
6
- VERSION = '2.12.0'
6
+ VERSION = '2.16.0'
7
7
  end
data/stream-chat.gemspec CHANGED
@@ -23,4 +23,5 @@ Gem::Specification.new do |gem|
23
23
  gem.add_development_dependency 'rake'
24
24
  gem.add_development_dependency 'rspec'
25
25
  gem.add_development_dependency 'simplecov'
26
+ gem.metadata['rubygems_mfa_required'] = 'true'
26
27
  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.12.0
4
+ version: 2.16.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-11-01 00:00:00.000000000 Z
11
+ date: 2021-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -105,7 +105,8 @@ files:
105
105
  - stream-chat.gemspec
106
106
  homepage: http://github.com/GetStream/stream-chat-ruby
107
107
  licenses: []
108
- metadata: {}
108
+ metadata:
109
+ rubygems_mfa_required: 'true'
109
110
  post_install_message:
110
111
  rdoc_options: []
111
112
  require_paths:
@@ -121,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
121
122
  - !ruby/object:Gem::Version
122
123
  version: '0'
123
124
  requirements: []
124
- rubygems_version: 3.1.2
125
+ rubygems_version: 3.0.3
125
126
  signing_key:
126
127
  specification_version: 4
127
128
  summary: The low level client for serverside calls for Stream Chat.