Skip to content

Commit 12bf4d1

Browse files
feat: deactivate users (#162)
* feat: add deactivate_users method to StreamChat client and corresponding tests * feat: add validation for deactivate_users method in StreamChat client and update tests * chore: removed unwanted dot file * Update lib/stream-chat/client.rb Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update lib/stream-chat/client.rb Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent c7bccb3 commit 12bf4d1

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

lib/stream-chat/client.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,14 @@ def deactivate_user(user_id, **options)
280280
post("users/#{user_id}/deactivate", params: options)
281281
end
282282

283+
# Deactivates a users
284+
sig { params(user_ids: T::Array[String], options: T.untyped).returns(StreamChat::StreamResponse) }
285+
def deactivate_users(user_ids, **options)
286+
raise ArgumentError, 'user_ids should not be empty' if user_ids.empty?
287+
288+
post('users/deactivate', data: { user_ids: user_ids, **options })
289+
end
290+
283291
# Reactivates a deactivated user. Use deactivate_user to deactivate a user.
284292
sig { params(user_id: String, options: T.untyped).returns(StreamChat::StreamResponse) }
285293
def reactivate_user(user_id, **options)

spec/client_spec.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,20 @@ def loop_times(times)
169169
expect(response['user']['id']).to eq(@random_user[:id])
170170
end
171171

172+
it 'deactivates multiple users' do
173+
response = @client.deactivate_users([@random_users[0][:id], @random_users[1][:id]])
174+
expect(response).to include 'task_id'
175+
expect(response['task_id']).not_to be_empty
176+
end
177+
178+
it 'raises an error if user_ids is not an array' do
179+
expect { @client.deactivate_users('not an array') }.to raise_error(TypeError)
180+
end
181+
182+
it 'raises an error if user_ids is empty' do
183+
expect { @client.deactivate_users([]) }.to raise_error(ArgumentError)
184+
end
185+
172186
it 'reactivates a user' do
173187
@client.deactivate_user(@random_user[:id])
174188
response = @client.reactivate_user(@random_user[:id])

0 commit comments

Comments
 (0)