stream-chat-ruby 2.11.1 → 2.13.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: 94aa7ad5ea3a88c5bf5e20cf49d5d73379df7a2b6944565e7dd853fe026f6b6c
4
- data.tar.gz: 84a37542aa8790e4f328aff6f5c748eef76df32d0f23404ff5e487453e10681d
3
+ metadata.gz: d913a2d883a67d7e06afd1e57febfb5565cbcd23d69249e101f72163084f7b96
4
+ data.tar.gz: af4374cd74b9789c5751f6569e9317e46289207daa6a72eea0e53a20ad3ee43f
5
5
  SHA512:
6
- metadata.gz: 7daa874596aabbe29e2cfa48d530c396e686ba949477f9212eb21d080f28f5ba1e6d8a28f1524121a315a3c5f15d6d64da9ef3ff96c2209d4fa57e5386433127
7
- data.tar.gz: 35f6745c799556c623541922c8bb8863b4b93469eb57d69662b3c3525c46cdeae3fb3fef6731f5cf633996fdb1ed5c8d902b7a2bf20d43e4fd81e820d114a1c1
6
+ metadata.gz: 5c7ed7f7f94d009b4e3a091942f6b59cfa14087d02ba4b2659e18755dbb62a8bbe471e0497ce46a113598fd1e36aa2c7a3749f4ca3505f6f18e28a8d2ca3e663
7
+ data.tar.gz: 4c0dbed5b2230c4ce9fb3b8630f6d8fa72dd58097b35b12d78a6b355635cd7d9b0b63e38e1b011b57d7ce647fb271b0b225977e02c35718d549fc9d9c9ad7da3
@@ -0,0 +1 @@
1
+ * @ffenix113
@@ -1,9 +1,9 @@
1
- name: build
1
+ name: test
2
2
 
3
3
  on: [pull_request]
4
4
 
5
5
  jobs:
6
- build:
6
+ test:
7
7
  runs-on: ubuntu-latest
8
8
  strategy:
9
9
  max-parallel: 1
@@ -12,15 +12,14 @@ jobs:
12
12
  name: Ruby ${{ matrix.ruby }}
13
13
  steps:
14
14
  - uses: actions/checkout@v2
15
- - uses: actions/setup-ruby@v1
15
+ - uses: ruby/setup-ruby@v1
16
16
  with:
17
17
  ruby-version: ${{ matrix.ruby }}
18
+ bundler-cache: true
18
19
 
19
20
  - env:
20
21
  STREAM_CHAT_API_KEY: ${{ secrets.STREAM_CHAT_API_KEY }}
21
22
  STREAM_CHAT_API_SECRET: ${{ secrets.STREAM_CHAT_API_SECRET }}
22
23
  run: |
23
- gem install bundler
24
- bundle install --jobs 4 --retry 3
25
24
  bundle exec rake rubocop
26
25
  bundle exec rake test
data/CHANGELOG.md CHANGED
@@ -1,3 +1,35 @@
1
+ ## November 17th, 2021 - 2.13.0
2
+
3
+ - Add support for shadow banning user
4
+ - shadow_ban
5
+ - remove_shadow_ban
6
+ - Add support for pinning messages
7
+ - pin_message
8
+ - unpin_message
9
+ - Add support for partial updating messages
10
+ - update_message_partial
11
+ - Add support for updating channel ownership for Deleted Users
12
+
13
+ ## November 1st, 2021 - 2.12.0
14
+
15
+ - Add support for async endpoints
16
+ - get_task
17
+ - delete_channels
18
+ - delete_users
19
+
20
+ ## October 22nd, 2021 - 2.11.3
21
+
22
+ - Don't log the entire response when creating exception
23
+ - Access error details through StreamAPIException class attr_readers
24
+
25
+ ## October 5th, 2021 - 2.11.2
26
+
27
+ - Add Codeowners file
28
+ - Fix StreamChannelException raises
29
+ - Fix rubocop linting error
30
+ - Fix channel export test
31
+ - Update Github action
32
+
1
33
  ## August 23rd, 2021 - 2.11.1
2
34
 
3
35
  - Use edge as base url
@@ -19,7 +19,7 @@ module StreamChat
19
19
  end
20
20
 
21
21
  def url
22
- raise StreamChannelException 'channel does not have an id' if @id.nil?
22
+ raise StreamChannelException, 'channel does not have an id' if @id.nil?
23
23
 
24
24
  "channels/#{@channel_type}/#{@id}"
25
25
  end
@@ -85,7 +85,7 @@ module StreamChat
85
85
  end
86
86
 
87
87
  def update_partial(set = nil, unset = nil)
88
- raise StreamChannelException 'set or unset is needed' if set.nil? && unset.nil?
88
+ raise StreamChannelException, 'set or unset is needed' if set.nil? && unset.nil?
89
89
 
90
90
  payload = { set: set, unset: unset }
91
91
  @client.patch(url, data: payload)
@@ -12,6 +12,8 @@ require 'stream-chat/util'
12
12
 
13
13
  module StreamChat
14
14
  DEFAULT_BLOCKLIST = 'profanity_en_2020_v1'
15
+ SOFT_DELETE = 'soft'
16
+ HARD_DELETE = 'hard'
15
17
 
16
18
  class Client
17
19
  BASE_URL = 'https://chat.stream-io-api.com'
@@ -158,6 +160,16 @@ module StreamChat
158
160
  delete('moderation/ban', params: params)
159
161
  end
160
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
+
161
173
  def mute_user(target_id, user_id)
162
174
  payload = { target_id: target_id, user_id: user_id }
163
175
  post('moderation/mute', data: payload)
@@ -173,12 +185,37 @@ module StreamChat
173
185
  post('channels/read', data: payload)
174
186
  end
175
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
+
176
207
  def update_message(message)
177
208
  raise ArgumentError 'message must have an id' unless message.key? 'id'
178
209
 
179
210
  post("messages/#{message['id']}", data: { message: message })
180
211
  end
181
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
+
182
219
  def delete_message(message_id)
183
220
  delete("messages/#{message_id}")
184
221
  end
@@ -293,6 +330,18 @@ module StreamChat
293
330
  get("export_channels/#{task_id}")
294
331
  end
295
332
 
333
+ def get_task(task_id)
334
+ get("tasks/#{task_id}")
335
+ end
336
+
337
+ def delete_users(user_ids, user: SOFT_DELETE, messages: nil, conversations: nil)
338
+ post('users/delete', data: { user_ids: user_ids, user: user, messages: messages, conversations: conversations })
339
+ end
340
+
341
+ def delete_channels(cids, hard_delete: false)
342
+ post('channels/delete', data: { cids: cids, hard_delete: hard_delete })
343
+ end
344
+
296
345
  def revoke_tokens(before)
297
346
  before = before.rfc3339 if before.instance_of?(DateTime)
298
347
  update_app_settings({ 'revoke_tokens_issued_before' => before })
@@ -413,7 +462,7 @@ module StreamChat
413
462
  headers['Authorization'] = @auth_token
414
463
  headers['stream-auth-type'] = 'jwt'
415
464
  url = [@base_url, relative_url].join('/')
416
- params = params.nil? ? {} : params
465
+ params = {} if params.nil?
417
466
  params = (get_default_params.merge(params).sort_by { |k, _v| k.to_s }).to_h
418
467
  url = "#{url}?#{URI.encode_www_form(params)}"
419
468
 
@@ -4,10 +4,12 @@
4
4
 
5
5
  module StreamChat
6
6
  class StreamAPIException < StandardError
7
+ attr_reader :error_code
8
+ attr_reader :error_message
9
+
7
10
  def initialize(response)
8
11
  super()
9
12
  @response = response
10
- p response
11
13
  begin
12
14
  parsed_response = JSON.parse(response.body)
13
15
  @json_response = true
@@ -25,6 +27,14 @@ module StreamChat
25
27
  "StreamChat error HTTP code: #{@response.status}"
26
28
  end
27
29
  end
30
+
31
+ def json_response?
32
+ @json_response
33
+ end
34
+
35
+ def to_s
36
+ message
37
+ end
28
38
  end
29
39
 
30
40
  class StreamChannelException < StandardError; end
@@ -3,5 +3,5 @@
3
3
  # lib/version.rb
4
4
 
5
5
  module StreamChat
6
- VERSION = '2.11.1'
6
+ VERSION = '2.13.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.11.1
4
+ version: 2.13.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-08-23 00:00:00.000000000 Z
11
+ date: 2021-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -86,6 +86,7 @@ executables: []
86
86
  extensions: []
87
87
  extra_rdoc_files: []
88
88
  files:
89
+ - ".github/CODEOWNERS"
89
90
  - ".github/workflows/ci.yml"
90
91
  - ".gitignore"
91
92
  - ".rubocop.yml"
@@ -104,7 +105,8 @@ files:
104
105
  - stream-chat.gemspec
105
106
  homepage: http://github.com/GetStream/stream-chat-ruby
106
107
  licenses: []
107
- metadata: {}
108
+ metadata:
109
+ rubygems_mfa_required: 'true'
108
110
  post_install_message:
109
111
  rdoc_options: []
110
112
  require_paths:
@@ -120,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
122
  - !ruby/object:Gem::Version
121
123
  version: '0'
122
124
  requirements: []
123
- rubygems_version: 3.1.2
125
+ rubygems_version: 3.0.3
124
126
  signing_key:
125
127
  specification_version: 4
126
128
  summary: The low level client for serverside calls for Stream Chat.