stream-chat-ruby 3.2.0 → 3.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/README.md +39 -13
- data/lib/stream-chat/client.rb +17 -23
- data/lib/stream-chat/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 73e40b4cf714cd04476c91ac638895cab0327dc618fb54031a83aaadc8b3279a
|
4
|
+
data.tar.gz: b5c98b143f98798cb2cd9db4e5a3c2c8c4cc7aaf9e35aa55a392c371d06fc970
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 74e06fd1205667b6c0a6f2d745f197aac2639ca5d932dee52bea8f2a4e371d9fc7d4ed8c2663010b47a1b1af0d7dd644f3bdf16b26f0048ed2fad6d8a5c18859
|
7
|
+
data.tar.gz: a91d9ec87dfb82fb7a393212a08641bd4b8164ccd38ef0259fbcb27d4824dc3a4b0330b973b6d46315ab77cf17c357dd48961cf37ac3ccf1748310e3fb6bfb8f
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,13 @@
|
|
2
2
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
4
4
|
|
5
|
+
## [3.3.0](https://github.com/GetStream/stream-chat-ruby/compare/v3.2.0...v3.3.0) (2022-11-17)
|
6
|
+
|
7
|
+
|
8
|
+
### Features
|
9
|
+
|
10
|
+
* add campaign support ([#124](https://github.com/GetStream/stream-chat-ruby/issues/124)) ([d7a935f](https://github.com/GetStream/stream-chat-ruby/commit/d7a935f7b4459399b82db1d51a541388caeb5e68))
|
11
|
+
|
5
12
|
## [3.2.0](https://github.com/GetStream/stream-chat-ruby/compare/v3.1.0...v3.2.0) (2022-11-17)
|
6
13
|
|
7
14
|
|
data/README.md
CHANGED
@@ -57,7 +57,7 @@ client = StreamChat::Client.new('STREAM_KEY', 'STREAM_SECRET')
|
|
57
57
|
> # Wrong:
|
58
58
|
> user = { "user" => { "id" => "bob-1"}}
|
59
59
|
> # Correct:
|
60
|
-
> user = { :
|
60
|
+
> user = { user: { id: "bob-1" }}
|
61
61
|
> ```
|
62
62
|
|
63
63
|
### Generate a token for client-side usage:
|
@@ -70,14 +70,14 @@ client.create_token('bob-1')
|
|
70
70
|
|
71
71
|
```ruby
|
72
72
|
client.upsert_user({
|
73
|
-
:
|
74
|
-
:
|
75
|
-
:
|
73
|
+
id: 'bob-1',
|
74
|
+
role: 'admin',
|
75
|
+
name: 'Robert Tables'
|
76
76
|
})
|
77
77
|
|
78
78
|
# Batch update is also supported
|
79
|
-
jane = {:
|
80
|
-
june = {:
|
79
|
+
jane = {id: 'jane-1'}
|
80
|
+
june = {id: 'june-1'}
|
81
81
|
client.upsert_users([jane, june])
|
82
82
|
```
|
83
83
|
|
@@ -85,10 +85,10 @@ client.upsert_users([jane, june])
|
|
85
85
|
|
86
86
|
```ruby
|
87
87
|
client.create_channel_type({
|
88
|
-
:
|
89
|
-
:
|
90
|
-
:
|
91
|
-
:
|
88
|
+
name: 'livechat',
|
89
|
+
automod: 'disabled',
|
90
|
+
commands: ['ban'],
|
91
|
+
mutes: true
|
92
92
|
})
|
93
93
|
|
94
94
|
channel_types = client.list_channel_types()
|
@@ -109,7 +109,7 @@ chan.add_members(['bob-1', 'jane-77'])
|
|
109
109
|
|
110
110
|
### Reactions
|
111
111
|
```ruby
|
112
|
-
chan.send_reaction(m1['id'], {:
|
112
|
+
chan.send_reaction(m1['id'], {type: 'like'}, 'bob-1')
|
113
113
|
```
|
114
114
|
|
115
115
|
### Moderation
|
@@ -125,7 +125,7 @@ chan.unban_user('bob-1')
|
|
125
125
|
### Messages
|
126
126
|
|
127
127
|
```ruby
|
128
|
-
m1 = chan.send_message({:
|
128
|
+
m1 = chan.send_message({text: 'Hi Jane!'}, 'bob-1')
|
129
129
|
|
130
130
|
deleted_message = client.delete_message(m1['message']['id'])
|
131
131
|
|
@@ -158,13 +158,39 @@ client.delete_blocklist('my_blocker')
|
|
158
158
|
|
159
159
|
```ruby
|
160
160
|
# Register an export
|
161
|
-
response = client.export_channels({:
|
161
|
+
response = client.export_channels({type: 'messaging', id: 'jane'})
|
162
162
|
|
163
163
|
# Check completion
|
164
164
|
status_response = client.get_export_channel_status(response['task_id'])
|
165
165
|
# status_response['status'] == 'pending', 'completed'
|
166
166
|
```
|
167
167
|
|
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
|
+
|
168
194
|
### Rate limits
|
169
195
|
|
170
196
|
```ruby
|
data/lib/stream-chat/client.rb
CHANGED
@@ -869,16 +869,10 @@ module StreamChat
|
|
869
869
|
post('campaigns', data: { campaign: campaign })
|
870
870
|
end
|
871
871
|
|
872
|
-
#
|
873
|
-
sig { params(
|
874
|
-
def
|
875
|
-
get(
|
876
|
-
end
|
877
|
-
|
878
|
-
# Lists all campaigns. Options dictionary can contain 'offset' and 'limit' keys for pagination.
|
879
|
-
sig { params(options: StringKeyHash).returns(StreamChat::StreamResponse) }
|
880
|
-
def list_campaigns(options)
|
881
|
-
get('campaigns', params: options)
|
872
|
+
# Queries campaigns similar to query_channels or query_users.
|
873
|
+
sig { params(params: T.untyped).returns(StreamChat::StreamResponse) }
|
874
|
+
def query_campaigns(**params)
|
875
|
+
get('campaigns', params: { payload: params.to_json })
|
882
876
|
end
|
883
877
|
|
884
878
|
# Updates a campaign.
|
@@ -894,9 +888,9 @@ module StreamChat
|
|
894
888
|
end
|
895
889
|
|
896
890
|
# Schedules a campaign.
|
897
|
-
sig { params(campaign_id: String,
|
898
|
-
def schedule_campaign(campaign_id,
|
899
|
-
patch("campaigns/#{campaign_id}/schedule", data: {
|
891
|
+
sig { params(campaign_id: String, scheduled_for: Integer).returns(StreamChat::StreamResponse) }
|
892
|
+
def schedule_campaign(campaign_id, scheduled_for)
|
893
|
+
patch("campaigns/#{campaign_id}/schedule", data: { scheduled_for: scheduled_for })
|
900
894
|
end
|
901
895
|
|
902
896
|
# Stops a campaign.
|
@@ -923,16 +917,10 @@ module StreamChat
|
|
923
917
|
post('segments', data: { segment: segment })
|
924
918
|
end
|
925
919
|
|
926
|
-
#
|
927
|
-
sig { params(
|
928
|
-
def
|
929
|
-
get(
|
930
|
-
end
|
931
|
-
|
932
|
-
# Lists all campaign segments. Options dictionary can contain 'offset' and 'limit' keys for pagination.
|
933
|
-
sig { params(options: StringKeyHash).returns(StreamChat::StreamResponse) }
|
934
|
-
def list_segments(options)
|
935
|
-
get('segments', params: options)
|
920
|
+
# Queries campaign segments.
|
921
|
+
sig { params(params: T.untyped).returns(StreamChat::StreamResponse) }
|
922
|
+
def query_segments(**params)
|
923
|
+
get('segments', params: { payload: params.to_json })
|
936
924
|
end
|
937
925
|
|
938
926
|
# Updates a campaign segment.
|
@@ -947,6 +935,12 @@ module StreamChat
|
|
947
935
|
delete("segments/#{segment_id}")
|
948
936
|
end
|
949
937
|
|
938
|
+
# Queries campaign recipients.
|
939
|
+
sig { params(params: T.untyped).returns(StreamChat::StreamResponse) }
|
940
|
+
def query_recipients(**params)
|
941
|
+
get('recipients', params: { payload: params.to_json })
|
942
|
+
end
|
943
|
+
|
950
944
|
private
|
951
945
|
|
952
946
|
sig { returns(T::Hash[String, String]) }
|
data/lib/stream-chat/version.rb
CHANGED