Skip to content

Commit be5af3a

Browse files
added message undelete api for ruby (#171)
1 parent 2a2afdf commit be5af3a

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

lib/stream-chat/client.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -419,6 +419,13 @@ def delete_message(message_id, **options)
419419
delete("messages/#{message_id}", params: options)
420420
end
421421

422+
# Un-deletes a message.
423+
sig { params(message_id: String, undeleted_by: String, options: T.untyped).returns(StreamChat::StreamResponse) }
424+
def undelete_message(message_id, undeleted_by, **options)
425+
payload = { undeleted_by: undeleted_by }.merge(options)
426+
post("messages/#{message_id}/undelete", data: payload)
427+
end
428+
422429
# Queries banned users.
423430
#
424431
# Banned users can be retrieved in different ways:

spec/client_spec.rb

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,28 @@ def loop_times(times)
411411
@client.delete_message(msg_id, hard: true)
412412
end
413413

414+
it 'undeletes a message' do
415+
msg_id = SecureRandom.uuid
416+
user_id = @random_user[:id]
417+
@channel.send_message({
418+
'id' => msg_id,
419+
'text' => 'to be deleted and restored'
420+
}, user_id)
421+
# soft delete
422+
@client.delete_message(msg_id)
423+
424+
# check it is deleted
425+
response = @client.get_message(msg_id, show_deleted_message: true)
426+
expect(response['message']['deleted_at']).not_to be_nil
427+
428+
# now undelete
429+
@client.undelete_message(msg_id, user_id)
430+
431+
# now we should be able to get it without an error and without the flag
432+
response = @client.get_message(msg_id)
433+
expect(response['message']['deleted_at']).to be_nil
434+
end
435+
414436
it 'query banned users' do
415437
@client.ban_user(@random_user[:id], user_id: @random_users[0][:id], reason: 'rubytest')
416438
response = @client.query_banned_users({ 'reason' => 'rubytest' }, limit: 1)

0 commit comments

Comments
 (0)