From 0700d8ffba68d524c3e425e792cb2ff4ccbcd0bd Mon Sep 17 00:00:00 2001 From: Lennart Kuijs Date: Thu, 26 Mar 2026 13:54:19 +0100 Subject: [PATCH] feat: add delete_reactions support for ban user Co-Authored-By: Claude Opus 4.6 --- .../chat/java/models/Moderation.java | 4 ++++ .../io/getstream/chat/java/models/User.java | 4 ++++ .../java/io/getstream/chat/java/UserTest.java | 19 +++++++++++++++++++ 3 files changed, 27 insertions(+) diff --git a/src/main/java/io/getstream/chat/java/models/Moderation.java b/src/main/java/io/getstream/chat/java/models/Moderation.java index 57cfb0b3..d256257f 100644 --- a/src/main/java/io/getstream/chat/java/models/Moderation.java +++ b/src/main/java/io/getstream/chat/java/models/Moderation.java @@ -758,6 +758,10 @@ public static class BanRequestData { @JsonProperty("ip_ban") private Boolean ipBan; + @Nullable + @JsonProperty("delete_reactions") + private Boolean deleteReactions; + public static class BanRequest extends StreamRequest { @Override protected Call generateCall(Client client) { diff --git a/src/main/java/io/getstream/chat/java/models/User.java b/src/main/java/io/getstream/chat/java/models/User.java index 4dc7d27b..08dae6ae 100644 --- a/src/main/java/io/getstream/chat/java/models/User.java +++ b/src/main/java/io/getstream/chat/java/models/User.java @@ -836,6 +836,10 @@ public static class UserBanRequestData { @JsonProperty("channel_cid") private String channelCid; + @Nullable + @JsonProperty("delete_reactions") + private Boolean deleteReactions; + public static class UserBanRequest extends StreamRequest { @Override protected Call generateCall(Client client) { diff --git a/src/test/java/io/getstream/chat/java/UserTest.java b/src/test/java/io/getstream/chat/java/UserTest.java index 1bf57257..e212fde6 100644 --- a/src/test/java/io/getstream/chat/java/UserTest.java +++ b/src/test/java/io/getstream/chat/java/UserTest.java @@ -191,6 +191,25 @@ void whenBanUser_thenIsBanned() { Assertions.assertTrue(bans.stream().anyMatch(ban -> ban.getUser().getId().equals(userId))); } + @DisplayName("Can ban user with delete reactions") + @Test + void whenBanUserWithDeleteReactions_thenIsBanned() { + String userId = RandomStringUtils.randomAlphabetic(10); + UserUpsertRequest usersUpsertRequest = User.upsert(); + usersUpsertRequest.user( + UserRequestObject.builder().id(userId).name("User to ban with delete reactions").build()); + Assertions.assertDoesNotThrow(() -> usersUpsertRequest.request()); + Assertions.assertDoesNotThrow( + () -> + User.ban() + .userId(testUserRequestObject.getId()) + .targetUserId(userId) + .deleteReactions(true) + .request()); + List bans = Assertions.assertDoesNotThrow(() -> User.queryBanned().request()).getBans(); + Assertions.assertTrue(bans.stream().anyMatch(ban -> ban.getUser().getId().equals(userId))); + } + @DisplayName("Can shadow ban user") @Test void whenShadowBanUser_thenIsShadowBanned() {