Skip to content

Commit 61102ac

Browse files
authored
feat: add test for notifications_muted as filter in query_members (#140)
* feat: add test for `notifications_muted` as filter in `query_members` Signed-off-by: Federico Guerinoni <[email protected]> * fix: adjust style * fix: binding * fix: remove old campaigns test * chore: remove old campaign --------- Signed-off-by: Federico Guerinoni <[email protected]>
1 parent 5b515de commit 61102ac

File tree

5 files changed

+12
-152
lines changed

5 files changed

+12
-152
lines changed

README.md

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -165,32 +165,6 @@ status_response = client.get_export_channel_status(response['task_id'])
165165
# status_response['status'] == 'pending', 'completed'
166166
```
167167

168-
### Campaigns
169-
170-
```ruby
171-
# Create a user or channel segment
172-
client.create_segment({ name: 'test', type: 'user', filter: { uniq: 'a flag on users' } })
173-
174-
# Create a campaign that uses the segment
175-
client.create_campaign({
176-
name: 'test',
177-
text: 'Hi',
178-
sender_id: campaign_sender,
179-
segment_id: segment_id,
180-
channel_type: 'messaging'
181-
})
182-
183-
# Schedule the campaign
184-
client.schedule_campaign(campaign_id, Time.now.to_i)
185-
186-
# Query the campaign to check the status
187-
response = client.query_campaigns(filter_conditions: { id: campaign_id })
188-
response['campaigns'][0]['status'] == 'completed'
189-
190-
# Read sent information
191-
client.query_recipients(filter_conditions: { campaign_id: campaign_id })
192-
```
193-
194168
### Rate limits
195169

196170
```ruby

lib/stream-chat/client.rb

Lines changed: 9 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -258,13 +258,13 @@ def delete_user(user_id, **options)
258258
# Restores a user synchronously.
259259
sig { params(user_id: String).returns(StreamChat::StreamResponse) }
260260
def restore_user(user_id)
261-
post("users/restore", data: { user_ids: [user_id] })
261+
post('users/restore', data: { user_ids: [user_id] })
262262
end
263263

264264
# Restores users synchronously.
265265
sig { params(user_ids: T::Array[String]).returns(StreamChat::StreamResponse) }
266266
def restore_users(user_ids)
267-
post("users/restore", data: { user_ids: user_ids })
267+
post('users/restore', data: { user_ids: user_ids })
268268
end
269269

270270
# Deactivates a user.
@@ -681,13 +681,13 @@ def revoke_users_token(user_ids, before)
681681
before = T.cast(before, DateTime).rfc3339 if before.instance_of?(DateTime)
682682

683683
updates = []
684-
user_ids.each do |user_id|
685-
updates.push({
686-
'id' => user_id,
687-
'set' => {
688-
'revoke_tokens_issued_before' => before
689-
}
690-
})
684+
user_ids.map do |user_id|
685+
{
686+
'id' => user_id,
687+
'set' => {
688+
'revoke_tokens_issued_before' => before
689+
}
690+
}
691691
end
692692
update_users_partial(updates)
693693
end
@@ -890,84 +890,6 @@ def list_imports(options)
890890
get('imports', params: options)
891891
end
892892

893-
# Creates a campaign.
894-
sig { params(campaign: StringKeyHash).returns(StreamChat::StreamResponse) }
895-
def create_campaign(campaign)
896-
post('campaigns', data: { campaign: campaign })
897-
end
898-
899-
# Queries campaigns similar to query_channels or query_users.
900-
sig { params(params: T.untyped).returns(StreamChat::StreamResponse) }
901-
def query_campaigns(**params)
902-
get('campaigns', params: { payload: params.to_json })
903-
end
904-
905-
# Updates a campaign.
906-
sig { params(campaign_id: String, campaign: StringKeyHash).returns(StreamChat::StreamResponse) }
907-
def update_campaign(campaign_id, campaign)
908-
put("campaigns/#{campaign_id}", data: { campaign: campaign })
909-
end
910-
911-
# Deletes a campaign.
912-
sig { params(campaign_id: String).returns(StreamChat::StreamResponse) }
913-
def delete_campaign(campaign_id)
914-
delete("campaigns/#{campaign_id}")
915-
end
916-
917-
# Schedules a campaign.
918-
sig { params(campaign_id: String, scheduled_for: Integer).returns(StreamChat::StreamResponse) }
919-
def schedule_campaign(campaign_id, scheduled_for)
920-
patch("campaigns/#{campaign_id}/schedule", data: { scheduled_for: scheduled_for })
921-
end
922-
923-
# Stops a campaign.
924-
sig { params(campaign_id: String).returns(StreamChat::StreamResponse) }
925-
def stop_campaign(campaign_id)
926-
patch("campaigns/#{campaign_id}/stop")
927-
end
928-
929-
# Resumes a campaign.
930-
sig { params(campaign_id: String).returns(StreamChat::StreamResponse) }
931-
def resume_campaign(campaign_id)
932-
patch("campaigns/#{campaign_id}/resume")
933-
end
934-
935-
# Tests a campaign.
936-
sig { params(campaign_id: String, users: T::Array[StringKeyHash]).returns(StreamChat::StreamResponse) }
937-
def test_campaign(campaign_id, users)
938-
post("campaigns/#{campaign_id}/test", data: { users: users })
939-
end
940-
941-
# Creates a campaign segment.
942-
sig { params(segment: StringKeyHash).returns(StreamChat::StreamResponse) }
943-
def create_segment(segment)
944-
post('segments', data: { segment: segment })
945-
end
946-
947-
# Queries campaign segments.
948-
sig { params(params: T.untyped).returns(StreamChat::StreamResponse) }
949-
def query_segments(**params)
950-
get('segments', params: { payload: params.to_json })
951-
end
952-
953-
# Updates a campaign segment.
954-
sig { params(segment_id: String, segment: StringKeyHash).returns(StreamChat::StreamResponse) }
955-
def update_segment(segment_id, segment)
956-
put("segments/#{segment_id}", data: { segment: segment })
957-
end
958-
959-
# Deletes a campaign segment.
960-
sig { params(segment_id: String).returns(StreamChat::StreamResponse) }
961-
def delete_segment(segment_id)
962-
delete("segments/#{segment_id}")
963-
end
964-
965-
# Queries campaign recipients.
966-
sig { params(params: T.untyped).returns(StreamChat::StreamResponse) }
967-
def query_recipients(**params)
968-
get('recipients', params: { payload: params.to_json })
969-
end
970-
971893
private
972894

973895
sig { returns(T::Hash[String, String]) }

sorbet/rbi/hidden-definitions/hidden.rbi

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -774,12 +774,6 @@ class BigDecimal
774774
def self.ver(); end
775775
end
776776

777-
class Binding
778-
def clone(); end
779-
780-
def irb(); end
781-
end
782-
783777
class Bundler::APIResponseInvalidDependenciesError
784778
def status_code(); end
785779
end

spec/channel_spec.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,5 +284,8 @@ def loop_times(times)
284284

285285
response = @channel.query_members(limit: 1)
286286
expect(response['members'].length).to eq 1
287+
288+
response = @channel.query_members(filter_conditions: { notifications_muted: true })
289+
expect(response['members'].length).to eq 2
287290
end
288291
end

spec/client_spec.rb

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -735,39 +735,6 @@ def loop_times(times)
735735
end
736736
end
737737

738-
describe 'campaigns', campaigns: true do
739-
before(:all) do
740-
@campaign_selector = SecureRandom.uuid
741-
@campaign_receiver = SecureRandom.uuid
742-
@campaign_sender = SecureRandom.uuid
743-
@client.upsert_user({ id: @campaign_receiver, uniq: @campaign_selector, receiver: true })
744-
@client.upsert_user({ id: @campaign_sender, sender: true })
745-
end
746-
747-
it 'full flow' do
748-
response = @client.create_segment({ name: 'test', type: 'user', filter: { uniq: @campaign_selector } })
749-
segment = response['segment']
750-
response = @client.create_campaign({ name: 'test', text: 'Hi', sender_id: @campaign_sender, segment_id: segment['id'], channel_type: 'messaging' })
751-
campaign = response['campaign']
752-
@client.schedule_campaign(campaign['id'], Time.now.to_i)
753-
754-
response = @client.query_segments(filter_conditions: { id: segment['id'] })
755-
expect(response['segments'].length).to eq 1
756-
757-
loop do
758-
response = @client.query_campaigns(filter_conditions: { id: campaign['id'] })
759-
if response['campaigns'].length == 1 && response['campaigns'][0]['status'] == 'completed'
760-
response = @client.query_recipients(filter_conditions: { campaign_id: campaign['id'] })
761-
puts response.to_json
762-
expect(response['recipients'].length).to eq 1
763-
expect(response['recipients'][0]['receiver_id']).to eq @campaign_receiver
764-
break
765-
end
766-
sleep(0.5)
767-
end
768-
end
769-
end
770-
771738
describe 'permissions' do
772739
before(:all) do
773740
@permission_id = SecureRandom.uuid

0 commit comments

Comments
 (0)