Skip to content

Commit fa9981a

Browse files
author
Slava Bobik
committed
feat:added deleted by filed
1 parent 9fc7a17 commit fa9981a

File tree

4 files changed

+44
-2
lines changed

4 files changed

+44
-2
lines changed

DOCS.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1208,6 +1208,12 @@ Message.delete(messageId).request();
12081208

12091209
// hard delete the message (works only server-side)
12101210
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();
12111217
```
12121218

12131219
**Upload file or image**

src/main/java/io/getstream/chat/java/models/Message.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -794,15 +794,23 @@ public static class MessageDeleteRequest extends StreamRequest<MessageDeleteResp
794794

795795
@Nullable private Boolean hard;
796796

797+
@Nullable private String deletedBy;
798+
797799
@NotNull
798800
public MessageDeleteRequest hard(@NotNull Boolean hard) {
799801
this.hard = hard;
800802
return this;
801803
}
802804

805+
@NotNull
806+
public MessageDeleteRequest deletedBy(@NotNull String deletedBy) {
807+
this.deletedBy = deletedBy;
808+
return this;
809+
}
810+
803811
@Override
804812
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);
806814
}
807815
}
808816

src/main/java/io/getstream/chat/java/services/MessageService.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,9 @@ Call<StreamResponseObject> deleteImage(
9191

9292
@DELETE("messages/{id}")
9393
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);
9597

9698
@GET("messages/{id}")
9799
Call<MessageGetResponse> get(

src/test/java/io/getstream/chat/java/MessageTest.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -530,6 +530,32 @@ void whenDeletingMessage_thenIsDeleted() {
530530
Assertions.assertNotNull(deletedMessage.getDeletedAt());
531531
}
532532

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+
533559
@DisplayName("Can retrieve many messages")
534560
@Test
535561
void whenRetrievingManyMessage_thenAreRetrieved() {

0 commit comments

Comments
 (0)