File tree Expand file tree Collapse file tree 4 files changed +44
-2
lines changed
main/java/io/getstream/chat/java
test/java/io/getstream/chat/java Expand file tree Collapse file tree 4 files changed +44
-2
lines changed Original file line number Diff line number Diff line change @@ -1208,6 +1208,12 @@ Message.delete(messageId).request();
1208
1208
1209
1209
// hard delete the message (works only server-side)
1210
1210
Message . delete(messageId). hard(true ). request();
1211
+
1212
+ // delete the message with a specific user as the deleter
1213
+ Message . delete(messageId). deletedBy(userId). request();
1214
+
1215
+ // combine parameters
1216
+ Message . delete(messageId). hard(true ). deletedBy(userId). request();
1211
1217
```
1212
1218
1213
1219
** Upload file or image**
Original file line number Diff line number Diff line change @@ -794,15 +794,23 @@ public static class MessageDeleteRequest extends StreamRequest<MessageDeleteResp
794
794
795
795
@ Nullable private Boolean hard ;
796
796
797
+ @ Nullable private String deletedBy ;
798
+
797
799
@ NotNull
798
800
public MessageDeleteRequest hard (@ NotNull Boolean hard ) {
799
801
this .hard = hard ;
800
802
return this ;
801
803
}
802
804
805
+ @ NotNull
806
+ public MessageDeleteRequest deletedBy (@ NotNull String deletedBy ) {
807
+ this .deletedBy = deletedBy ;
808
+ return this ;
809
+ }
810
+
803
811
@ Override
804
812
protected Call <MessageDeleteResponse > generateCall (Client client ) {
805
- return client .create (MessageService .class ).delete (this .id , this .hard );
813
+ return client .create (MessageService .class ).delete (this .id , this .hard , this . deletedBy );
806
814
}
807
815
}
808
816
Original file line number Diff line number Diff line change @@ -91,7 +91,9 @@ Call<StreamResponseObject> deleteImage(
91
91
92
92
@ DELETE ("messages/{id}" )
93
93
Call <MessageDeleteResponse > delete (
94
- @ NotNull @ Path ("id" ) String id , @ Nullable @ Query ("hard" ) Boolean hard );
94
+ @ NotNull @ Path ("id" ) String id ,
95
+ @ Nullable @ Query ("hard" ) Boolean hard ,
96
+ @ Nullable @ Query ("deleted_by" ) String deletedBy );
95
97
96
98
@ GET ("messages/{id}" )
97
99
Call <MessageGetResponse > get (
Original file line number Diff line number Diff line change @@ -530,6 +530,32 @@ void whenDeletingMessage_thenIsDeleted() {
530
530
Assertions .assertNotNull (deletedMessage .getDeletedAt ());
531
531
}
532
532
533
+ @ DisplayName ("Can delete a message with deletedBy specified" )
534
+ @ Test
535
+ void whenDeletingMessageWithDeletedBy_thenIsDeletedWithSpecifiedUser () {
536
+ String text = "This is a message to be deleted with deletedBy" ;
537
+ MessageRequestObject messageRequest =
538
+ MessageRequestObject .builder ().text (text ).userId (testUserRequestObject .getId ()).build ();
539
+ Message message =
540
+ Assertions .assertDoesNotThrow (
541
+ () ->
542
+ Message .send (testChannel .getType (), testChannel .getId ())
543
+ .message (messageRequest )
544
+ .request ())
545
+ .getMessage ();
546
+ Assertions .assertNull (message .getDeletedAt ());
547
+
548
+ String deletedByUserId = "test-deleted-by-user" ;
549
+ Message deletedMessage =
550
+ Assertions .assertDoesNotThrow (
551
+ () -> Message .delete (message .getId ())
552
+ .deletedBy (deletedByUserId )
553
+ .request ())
554
+ .getMessage ();
555
+ Assertions .assertNotNull (deletedMessage .getDeletedAt ());
556
+ // Additional assertions can be added here once the backend supports checking the deletedBy field
557
+ }
558
+
533
559
@ DisplayName ("Can retrieve many messages" )
534
560
@ Test
535
561
void whenRetrievingManyMessage_thenAreRetrieved () {
You can’t perform that action at this time.
0 commit comments