File tree Expand file tree Collapse file tree 2 files changed +29
-0
lines changed
Expand file tree Collapse file tree 2 files changed +29
-0
lines changed Original file line number Diff line number Diff 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:
Original file line number Diff line number Diff 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 )
You can’t perform that action at this time.
0 commit comments