Skip to content

Commit 8e5bf89

Browse files
authored
feat(send_message): add options argument (#107)
1 parent f78cdea commit 8e5bf89

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ chan.unban_user('bob-1')
127127
```ruby
128128
m1 = chan.send_message({:text => 'Hi Jane!'}, 'bob-1')
129129

130-
deleted_message = client.delete_message(r1['id'])
130+
deleted_message = client.delete_message(m1['message']['id'])
131131

132132
```
133133

lib/stream-chat/channel.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ def get_messages(message_ids)
4646
end
4747

4848
# Sends a message to this channel.
49-
sig { params(message: StringKeyHash, user_id: String).returns(StreamChat::StreamResponse) }
50-
def send_message(message, user_id)
51-
payload = { message: add_user_id(message, user_id) }
49+
sig { params(message: StringKeyHash, user_id: String, options: T.untyped).returns(StreamChat::StreamResponse) }
50+
def send_message(message, user_id, **options)
51+
payload = options.merge({ message: add_user_id(message, user_id) })
5252
@client.post("#{url}/message", data: payload)
5353
end
5454

spec/channel_spec.rb

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def loop_times(times)
3232
@created_users.push(*users_to_insert.map { |u| u[:id] })
3333
@client.upsert_users(users_to_insert)
3434

35-
@channel = @client.channel('messaging', channel_id: SecureRandom.uuid, data: { 'test' => true, 'language' => 'ruby' })
35+
@channel = @client.channel('messaging', channel_id: SecureRandom.uuid, data: { test: true, language: 'ruby' })
3636
@channel.create(@random_user[:id])
3737
end
3838

@@ -223,6 +223,19 @@ def loop_times(times)
223223
expect(response['reactions'][0]['count']).to eq 42
224224
end
225225

226+
it 'send message with pending metadata' do
227+
options = {
228+
is_pending_message: true,
229+
pending_message_metadata: {
230+
metadata: 'some_data'
231+
}
232+
}
233+
msg = @channel.send_message({ text: 'hi' }, @random_user[:id], **options)
234+
response = @client.get_message(msg['message']['id'])
235+
expect(response['message']).not_to be_empty
236+
expect(response['pending_message_metadata']['metadata']).to eq 'some_data'
237+
end
238+
226239
it 'hides\shows channel for user' do
227240
@channel.hide(@random_user[:id])
228241
@channel.show(@random_user[:id])

0 commit comments

Comments
 (0)