From 8e5b67dbde4f5965b1c334ab47b7c455c5b02504 Mon Sep 17 00:00:00 2001 From: nijeeshjoshy Date: Tue, 1 Apr 2025 17:10:30 +0200 Subject: [PATCH 1/5] feat: add deactivate_users method to StreamChat client and corresponding tests --- lib/stream-chat/client.rb | 7 +++++++ spec/client_spec.rb | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/lib/stream-chat/client.rb b/lib/stream-chat/client.rb index 2c0e13f..f5affb3 100644 --- a/lib/stream-chat/client.rb +++ b/lib/stream-chat/client.rb @@ -280,6 +280,13 @@ def deactivate_user(user_id, **options) post("users/#{user_id}/deactivate", params: options) end + + # Deactivates a users + sig { params(user_ids: T::Array[String], options: T.untyped).returns(StreamChat::StreamResponse) } + def deactivate_users(user_ids, **options) + post("users/deactivate", data: { user_ids: user_ids, **options }) + end + # Reactivates a deactivated user. Use deactivate_user to deactivate a user. sig { params(user_id: String, options: T.untyped).returns(StreamChat::StreamResponse) } def reactivate_user(user_id, **options) diff --git a/spec/client_spec.rb b/spec/client_spec.rb index cd4f87b..c9fce48 100644 --- a/spec/client_spec.rb +++ b/spec/client_spec.rb @@ -169,6 +169,12 @@ def loop_times(times) expect(response['user']['id']).to eq(@random_user[:id]) end + it 'deactivates multiple users' do + response = @client.deactivate_users([@random_users[0][:id], @random_users[1][:id]]) + expect(response).to include 'users' + expect(response['users'].length).to eq(2) + end + it 'reactivates a user' do @client.deactivate_user(@random_user[:id]) response = @client.reactivate_user(@random_user[:id]) From bac35629591db074c3c4b926204f1aaad1fa0197 Mon Sep 17 00:00:00 2001 From: nijeeshjoshy Date: Thu, 3 Apr 2025 22:51:49 +0200 Subject: [PATCH 2/5] feat: add validation for deactivate_users method in StreamChat client and update tests --- .tool-versions | 1 + lib/stream-chat/client.rb | 2 ++ spec/client_spec.rb | 12 ++++++++++-- 3 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 .tool-versions diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 0000000..ae5ecdb --- /dev/null +++ b/.tool-versions @@ -0,0 +1 @@ +ruby 3.4.2 diff --git a/lib/stream-chat/client.rb b/lib/stream-chat/client.rb index f5affb3..8d603e4 100644 --- a/lib/stream-chat/client.rb +++ b/lib/stream-chat/client.rb @@ -284,6 +284,8 @@ def deactivate_user(user_id, **options) # Deactivates a users sig { params(user_ids: T::Array[String], options: T.untyped).returns(StreamChat::StreamResponse) } def deactivate_users(user_ids, **options) + raise ArgumentError, 'user_ids should not be empty' if user_ids.empty? + post("users/deactivate", data: { user_ids: user_ids, **options }) end diff --git a/spec/client_spec.rb b/spec/client_spec.rb index c9fce48..7abed23 100644 --- a/spec/client_spec.rb +++ b/spec/client_spec.rb @@ -171,8 +171,16 @@ def loop_times(times) it 'deactivates multiple users' do response = @client.deactivate_users([@random_users[0][:id], @random_users[1][:id]]) - expect(response).to include 'users' - expect(response['users'].length).to eq(2) + expect(response).to include 'task_id' + expect(response['task_id']).not_to be_empty + end + + it 'raises an error if user_ids is not an array' do + expect { @client.deactivate_users('not an array') }.to raise_error(TypeError) + end + + it 'raises an error if user_ids is empty' do + expect { @client.deactivate_users([]) }.to raise_error(ArgumentError) end it 'reactivates a user' do From d7becc147d60bf5aba52495b4a09c6946d98bde2 Mon Sep 17 00:00:00 2001 From: nijeeshjoshy Date: Thu, 3 Apr 2025 22:52:37 +0200 Subject: [PATCH 3/5] chore: removed unwanted dot file --- .tool-versions | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .tool-versions diff --git a/.tool-versions b/.tool-versions deleted file mode 100644 index ae5ecdb..0000000 --- a/.tool-versions +++ /dev/null @@ -1 +0,0 @@ -ruby 3.4.2 From 551f9d8b74f502daf581837419c49ff0049082c3 Mon Sep 17 00:00:00 2001 From: nijeesh-stream Date: Fri, 4 Apr 2025 10:22:19 +0200 Subject: [PATCH 4/5] Update lib/stream-chat/client.rb Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- lib/stream-chat/client.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/stream-chat/client.rb b/lib/stream-chat/client.rb index 6d472ab..9334d2b 100644 --- a/lib/stream-chat/client.rb +++ b/lib/stream-chat/client.rb @@ -280,7 +280,6 @@ def deactivate_user(user_id, **options) post("users/#{user_id}/deactivate", params: options) end - # Deactivates a users sig { params(user_ids: T::Array[String], options: T.untyped).returns(StreamChat::StreamResponse) } def deactivate_users(user_ids, **options) From a4a9bfe044bfd9c4b8dd2890c0fe521d0177ceb5 Mon Sep 17 00:00:00 2001 From: nijeesh-stream Date: Fri, 4 Apr 2025 10:22:36 +0200 Subject: [PATCH 5/5] Update lib/stream-chat/client.rb Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- lib/stream-chat/client.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/stream-chat/client.rb b/lib/stream-chat/client.rb index 9334d2b..87f47aa 100644 --- a/lib/stream-chat/client.rb +++ b/lib/stream-chat/client.rb @@ -285,7 +285,7 @@ def deactivate_user(user_id, **options) def deactivate_users(user_ids, **options) raise ArgumentError, 'user_ids should not be empty' if user_ids.empty? - post("users/deactivate", data: { user_ids: user_ids, **options }) + post('users/deactivate', data: { user_ids: user_ids, **options }) end # Reactivates a deactivated user. Use deactivate_user to deactivate a user.