stream-chat-ruby 2.4.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ea550365bc302aeb9097c2f2819a0dd6c5ead1fd1064a7c12842de4670e871d4
4
- data.tar.gz: b01a528a334338edfd9f05e8f3aa40e682cabd3de40e6356b162f9f0cc791e64
3
+ metadata.gz: cff8888b576ad92ca17c3275504e585b1490e3935e7d86595aad795dfea67a7d
4
+ data.tar.gz: 8aa309ce84be59f966edee13e0e8957f863f59c535bc8df9d41d90484e8b1cb5
5
5
  SHA512:
6
- metadata.gz: 3f12aa7bec1853b9a91e3b9a63a6f296aca373bb8f24a719a0728959e68cbe10e4b440bc7056d730bfa36f3e2a0c5c1b4db1b566cc51159a09bad3eac4694747
7
- data.tar.gz: 9982645b54641b15fd7d8deae0049d90aca66defcaba509e19be7f0c27dfd42fec8bba5221b0ca961251fc8c084c61a1793fcc689df853ae09a570b0358ac605
6
+ metadata.gz: 9ca7b965ba2ca2fdffcb3ff667d93a1081e5aa15f40d3aeb9a167c945f26e54d3e773e826ca583c445c0da02acb5f67f3c450d7fc3fce98fcb958acd7e9077cf
7
+ data.tar.gz: 98b040deb4906b952d393244fb228843e77d669481104fa0ca75512cdcaacfccd75d8733c9ade31854366ab066ff6c58a54d2ff3c89e6c590d5a8c9fdc17c888
@@ -18,6 +18,7 @@ jobs:
18
18
  - env:
19
19
  STREAM_CHAT_API_KEY: ${{ secrets.STREAM_CHAT_API_KEY }}
20
20
  STREAM_CHAT_API_SECRET: ${{ secrets.STREAM_CHAT_API_SECRET }}
21
+ BLOCKLIST: ${{ matrix.ruby == '2.7' }}
21
22
  run: |
22
23
  gem install bundler
23
24
  bundle install --jobs 4 --retry 3
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## February 3rd, 2021 - 2.5.0
2
+ - Add channel partial update
3
+ - Increase convenience in query members
4
+ - Improve internal symbol conversions
5
+
1
6
  ## January 20th, 2021 - 2.4.0
2
7
  - Add query_members to channel
3
8
  - Use post endpoint for query channels instead of get
data/README.md CHANGED
@@ -131,8 +131,16 @@ chan.unban_user('bob-1')
131
131
  # Query channel state
132
132
  chan.query({'messages' => { 'limit' => 10, 'id_lte' => m1['id']}})
133
133
 
134
+ # Update metadata (overwrite)
135
+ chan.update({'motd' => 'one apple a day....'})
136
+
137
+ # Update partial
138
+ # 1. key-value pairs to set
139
+ # 2. keys to unset (remove)
140
+ chan.update_partial({color: 'blue', age: 30}, ['motd'])
141
+
134
142
  # Query channel members
135
- chan.query_members({name: {'$autocomplete': 'test'}}, {last_created_at: -1}, offset: 5, limit: 5)
143
+ chan.query_members({name: {'$autocomplete': 'test'}}, sort: {last_created_at: -1}, offset: 5, limit: 5)
136
144
  ```
137
145
 
138
146
  ### Messages
@@ -25,7 +25,7 @@ module StreamChat
25
25
  end
26
26
 
27
27
  def send_message(message, user_id)
28
- payload = { "message": add_user_id(message, user_id) }
28
+ payload = { message: add_user_id(message, user_id) }
29
29
  @client.post("#{url}/message", data: payload)
30
30
  end
31
31
 
@@ -35,24 +35,24 @@ module StreamChat
35
35
  end
36
36
 
37
37
  def send_reaction(message_id, reaction, user_id)
38
- payload = { "reaction": add_user_id(reaction, user_id) }
38
+ payload = { reaction: add_user_id(reaction, user_id) }
39
39
  @client.post("messages/#{message_id}/reaction", data: payload)
40
40
  end
41
41
 
42
42
  def delete_reaction(message_id, reaction_type, user_id)
43
43
  @client.delete(
44
44
  "messages/#{message_id}/reaction/#{reaction_type}",
45
- params: { "user_id": user_id }
45
+ params: { user_id: user_id }
46
46
  )
47
47
  end
48
48
 
49
49
  def create(user_id)
50
- @custom_data['created_by'] = { "id": user_id }
50
+ @custom_data['created_by'] = { id: user_id }
51
51
  query(watch: false, state: false, presence: false)
52
52
  end
53
53
 
54
54
  def query(**options)
55
- payload = { "state": true, "data": @custom_data }.merge(options)
55
+ payload = { state: true, data: @custom_data }.merge(options)
56
56
  url = "channels/#{@channel_type}"
57
57
  url = "#{url}/#{@id}" unless @id.nil?
58
58
 
@@ -61,7 +61,7 @@ module StreamChat
61
61
  state
62
62
  end
63
63
 
64
- def query_members(filter_conditions: {}, sort: nil, **options)
64
+ def query_members(filter_conditions = {}, sort: nil, **options)
65
65
  params = {}.merge(options).merge({
66
66
  id: @id,
67
67
  type: @channel_type,
@@ -80,10 +80,17 @@ module StreamChat
80
80
  end
81
81
 
82
82
  def update(channel_data, update_message = nil)
83
- payload = { "data": channel_data, "message": update_message }
83
+ payload = { data: channel_data, message: update_message }
84
84
  @client.post(url, data: payload)
85
85
  end
86
86
 
87
+ def update_partial(set = nil, unset = nil)
88
+ raise StreamChannelException 'set or unset is needed' if set.nil? && unset.nil?
89
+
90
+ payload = { set: set, unset: unset }
91
+ @client.patch(url, data: payload)
92
+ end
93
+
87
94
  def delete
88
95
  @client.delete(url)
89
96
  end
@@ -93,23 +100,23 @@ module StreamChat
93
100
  end
94
101
 
95
102
  def add_members(user_ids)
96
- @client.post(url, data: { "add_members": user_ids })
103
+ @client.post(url, data: { add_members: user_ids })
97
104
  end
98
105
 
99
106
  def invite_members(user_ids)
100
- @client.post(url, data: { "invites": user_ids })
107
+ @client.post(url, data: { invites: user_ids })
101
108
  end
102
109
 
103
110
  def add_moderators(user_ids)
104
- @client.post(url, data: { "add_moderators": user_ids })
111
+ @client.post(url, data: { add_moderators: user_ids })
105
112
  end
106
113
 
107
114
  def remove_members(user_ids)
108
- @client.post(url, data: { "remove_members": user_ids })
115
+ @client.post(url, data: { remove_members: user_ids })
109
116
  end
110
117
 
111
118
  def demote_moderators(user_ids)
112
- @client.post(url, data: { "demote_moderators": user_ids })
119
+ @client.post(url, data: { demote_moderators: user_ids })
113
120
  end
114
121
 
115
122
  def mark_read(user_id, **options)
@@ -150,17 +157,17 @@ module StreamChat
150
157
  end
151
158
 
152
159
  def delete_file(url)
153
- @client.delete("#{self.url}/file", params: { "url": url })
160
+ @client.delete("#{self.url}/file", params: { url: url })
154
161
  end
155
162
 
156
163
  def delete_image(url)
157
- @client.delete("#{self.url}/image", params: { "url": url })
164
+ @client.delete("#{self.url}/image", params: { url: url })
158
165
  end
159
166
 
160
167
  private
161
168
 
162
169
  def add_user_id(payload, user_id)
163
- payload.merge({ "user": { "id": user_id } })
170
+ payload.merge({ user: { id: user_id } })
164
171
  end
165
172
  end
166
173
  end
@@ -60,22 +60,22 @@ module StreamChat
60
60
  end
61
61
 
62
62
  def flag_message(id, **options)
63
- payload = { 'target_message_id': id }.merge(options)
63
+ payload = { target_message_id: id }.merge(options)
64
64
  post('moderation/flag', data: payload)
65
65
  end
66
66
 
67
67
  def unflag_message(id, **options)
68
- payload = { 'target_message_id': id }.merge(options)
68
+ payload = { target_message_id: id }.merge(options)
69
69
  post('moderation/unflag', data: payload)
70
70
  end
71
71
 
72
72
  def flag_user(id, **options)
73
- payload = { 'target_user_id': id }.merge(options)
73
+ payload = { target_user_id: id }.merge(options)
74
74
  post('moderation/flag', data: payload)
75
75
  end
76
76
 
77
77
  def unflag_user(id, **options)
78
- payload = { 'target_user_id': id }.merge(options)
78
+ payload = { target_user_id: id }.merge(options)
79
79
  post('moderation/unflag', data: payload)
80
80
  end
81
81
 
@@ -85,11 +85,11 @@ module StreamChat
85
85
 
86
86
  def search(filter_conditions, query, **options)
87
87
  params = options.merge({
88
- "filter_conditions": filter_conditions,
89
- "query": query
88
+ filter_conditions: filter_conditions,
89
+ query: query
90
90
  })
91
91
 
92
- get('search', params: { "payload": params.to_json })
92
+ get('search', params: { payload: params.to_json })
93
93
  end
94
94
 
95
95
  def update_users(users)
@@ -100,7 +100,7 @@ module StreamChat
100
100
 
101
101
  payload[id] = user
102
102
  end
103
- post('users', data: { 'users': payload })
103
+ post('users', data: { users: payload })
104
104
  end
105
105
 
106
106
  def update_user(user)
@@ -108,7 +108,7 @@ module StreamChat
108
108
  end
109
109
 
110
110
  def update_users_partial(updates)
111
- patch('users', data: { 'users': updates })
111
+ patch('users', data: { users: updates })
112
112
  end
113
113
 
114
114
  def update_user_partial(update)
@@ -132,34 +132,34 @@ module StreamChat
132
132
  end
133
133
 
134
134
  def ban_user(target_id, **options)
135
- payload = { 'target_user_id': target_id }.merge(options)
135
+ payload = { target_user_id: target_id }.merge(options)
136
136
  post('moderation/ban', data: payload)
137
137
  end
138
138
 
139
139
  def unban_user(target_id, **options)
140
- params = { 'target_user_id': target_id }.merge(options)
140
+ params = { target_user_id: target_id }.merge(options)
141
141
  delete('moderation/ban', params: params)
142
142
  end
143
143
 
144
144
  def mute_user(target_id, user_id)
145
- payload = { 'target_id': target_id, 'user_id': user_id }
145
+ payload = { target_id: target_id, user_id: user_id }
146
146
  post('moderation/mute', data: payload)
147
147
  end
148
148
 
149
149
  def unmute_user(target_id, user_id)
150
- payload = { 'target_id': target_id, 'user_id': user_id }
150
+ payload = { target_id: target_id, user_id: user_id }
151
151
  post('moderation/unmute', data: payload)
152
152
  end
153
153
 
154
154
  def mark_all_read(user_id)
155
- payload = { 'user': { 'id': user_id } }
155
+ payload = { user: { id: user_id } }
156
156
  post('channels/read', data: payload)
157
157
  end
158
158
 
159
159
  def update_message(message)
160
160
  raise ArgumentError 'message must have an id' unless message.key? 'id'
161
161
 
162
- post("messages/#{message['id']}", data: { 'message': message })
162
+ post("messages/#{message['id']}", data: { message: message })
163
163
  end
164
164
 
165
165
  def delete_message(message_id)
@@ -168,14 +168,14 @@ module StreamChat
168
168
 
169
169
  def query_users(filter_conditions, sort: nil, **options)
170
170
  params = options.merge({
171
- "filter_conditions": filter_conditions,
172
- "sort": get_sort_fields(sort)
171
+ filter_conditions: filter_conditions,
172
+ sort: get_sort_fields(sort)
173
173
  })
174
- get('users', params: { "payload": params.to_json })
174
+ get('users', params: { payload: params.to_json })
175
175
  end
176
176
 
177
177
  def query_channels(filter_conditions, sort: nil, **options)
178
- data = { "state": true, "watch": false, "presence": false }
178
+ data = { state: true, watch: false, presence: false }
179
179
  data = data.merge(options).merge({
180
180
  filter_conditions: filter_conditions,
181
181
  sort: get_sort_fields(sort)
@@ -218,18 +218,18 @@ module StreamChat
218
218
 
219
219
  def add_device(device_id, push_provider, user_id)
220
220
  post('devices', data: {
221
- "id": device_id,
222
- "push_provider": push_provider,
223
- "user_id": user_id
221
+ id: device_id,
222
+ push_provider: push_provider,
223
+ user_id: user_id
224
224
  })
225
225
  end
226
226
 
227
227
  def delete_device(device_id, user_id)
228
- delete('devices', params: { "id": device_id, "user_id": user_id })
228
+ delete('devices', params: { id: device_id, user_id: user_id })
229
229
  end
230
230
 
231
231
  def get_devices(user_id)
232
- get('devices', params: { "user_id": user_id })
232
+ get('devices', params: { user_id: user_id })
233
233
  end
234
234
 
235
235
  def verify_webhook(request_body, x_signature)
@@ -246,11 +246,11 @@ module StreamChat
246
246
  end
247
247
 
248
248
  def create_blocklist(name, words)
249
- post('blocklists', data: { "name": name, "words": words })
249
+ post('blocklists', data: { name: name, words: words })
250
250
  end
251
251
 
252
252
  def update_blocklist(name, words)
253
- put("blocklists/#{name}", data: { "words": words })
253
+ put("blocklists/#{name}", data: { words: words })
254
254
  end
255
255
 
256
256
  def delete_blocklist(name)
@@ -258,7 +258,7 @@ module StreamChat
258
258
  end
259
259
 
260
260
  def export_channels(*channels)
261
- post('export_channels', data: { "channels": channels })
261
+ post('export_channels', data: { channels: channels })
262
262
  end
263
263
 
264
264
  def get_export_channel_status(task_id)
@@ -305,7 +305,7 @@ module StreamChat
305
305
  end
306
306
 
307
307
  def check_sqs(sqs_key = nil, sqs_secret = nil, sqs_url = nil)
308
- post('check_sqs', data: { "sqs_key": sqs_key, "sqs_secret": sqs_secret, "sqs_url": sqs_url })
308
+ post('check_sqs', data: { sqs_key: sqs_key, sqs_secret: sqs_secret, sqs_url: sqs_url })
309
309
  end
310
310
 
311
311
  private
@@ -3,5 +3,5 @@
3
3
  # lib/version.rb
4
4
 
5
5
  module StreamChat
6
- VERSION = '2.4.0'
6
+ VERSION = '2.5.0'
7
7
  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.4.0
4
+ version: 2.5.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-01-20 00:00:00.000000000 Z
11
+ date: 2021-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday