Skip to content

Commit d5158cd

Browse files
authored
feat: add hide_history_before option when adding members (#214)
* feat: add hide_history_before option when adding members * Test serialization of hideHistoryBefore * Add proper test * Remove serialization test * Create separate channel for test * Fix lint
1 parent 2680bca commit d5158cd

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -601,6 +601,10 @@ public static class ChannelUpdateRequestData {
601601
@JsonProperty("hide_history")
602602
private Boolean hideHistory;
603603

604+
@Nullable
605+
@JsonProperty("hide_history_before")
606+
private Date hideHistoryBefore;
607+
604608
@Nullable
605609
@JsonProperty("data")
606610
private ChannelRequestObject data;

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

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,13 @@
88
import io.getstream.chat.java.models.Sort.Direction;
99
import io.getstream.chat.java.models.User;
1010
import io.getstream.chat.java.models.User.ChannelMute;
11+
import io.getstream.chat.java.models.User.UserRequestObject;
1112
import java.util.Arrays;
13+
import java.util.Calendar;
1214
import java.util.Date;
15+
import java.util.GregorianCalendar;
1316
import java.util.List;
17+
import java.util.TimeZone;
1418
import java.util.stream.Collectors;
1519
import org.apache.commons.lang3.RandomStringUtils;
1620
import org.junit.jupiter.api.Assertions;
@@ -640,4 +644,47 @@ void whenMarkingDeliveredWithLastDeliveredMessages_thenNoException() {
640644
.latestDeliveredMessages(latestDeliveredMessages)
641645
.request());
642646
}
647+
648+
@DisplayName("hide_messages_before is set when adding member with hide_history_before")
649+
@Test
650+
void whenAddingMemberWithHideHistoryBefore_thenHideMessagesBeforeIsSet() {
651+
// Create new test user
652+
UserRequestObject newMember =
653+
UserRequestObject.builder()
654+
.id(RandomStringUtils.randomAlphabetic(10))
655+
.name("New Member 1")
656+
.build();
657+
658+
Assertions.assertDoesNotThrow(() -> User.upsert().user(newMember).request());
659+
660+
// Create test channel
661+
Channel channel = Assertions.assertDoesNotThrow(() -> createRandomChannel()).getChannel();
662+
663+
// Create a static timestamp for hide_history_before
664+
Calendar calendar = new GregorianCalendar(TimeZone.getTimeZone("UTC"));
665+
calendar.set(2025, Calendar.JANUARY, 15, 10, 30, 0);
666+
calendar.set(Calendar.MILLISECOND, 0);
667+
Date hideBeforeTimestamp = calendar.getTime();
668+
669+
// Add ember with hide_history_before
670+
Assertions.assertDoesNotThrow(
671+
() ->
672+
Channel.update(channel.getType(), channel.getId())
673+
.addMember(newMember.getId())
674+
.hideHistoryBefore(hideBeforeTimestamp)
675+
.request());
676+
677+
// Query channel with state for newMember - should have hide_messages_before set
678+
String userToken = User.createToken(newMember.getId(), null, null);
679+
ChannelGetResponse channelResponse =
680+
Assertions.assertDoesNotThrow(
681+
() ->
682+
Channel.getOrCreate(channel.getType(), channel.getId())
683+
.state(true)
684+
.withUserToken(userToken)
685+
.request());
686+
687+
Assertions.assertNotNull(channelResponse.getHideMessagesBefore());
688+
Assertions.assertEquals(hideBeforeTimestamp, channelResponse.getHideMessagesBefore());
689+
}
643690
}

0 commit comments

Comments
 (0)