Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 91 additions & 1 deletion src/main/java/io/getstream/chat/java/models/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import io.getstream.chat.java.models.User.UserMuteRequestData.UserMuteRequest;
import io.getstream.chat.java.models.User.UserPartialUpdateRequestData.UserPartialUpdateRequest;
import io.getstream.chat.java.models.User.UserQueryBannedRequestData.UserQueryBannedRequest;
import io.getstream.chat.java.models.User.UserQueryFutureChannelBansRequestData.UserQueryFutureChannelBansRequest;
import io.getstream.chat.java.models.User.UserReactivateRequestData.UserReactivateRequest;
import io.getstream.chat.java.models.User.UserUnmuteRequestData.UserUnmuteRequest;
import io.getstream.chat.java.models.User.UserUpsertRequestData.UserUpsertRequest;
Expand Down Expand Up @@ -214,6 +215,30 @@ public static class Ban {
private Date createdAt;
}

@Data
@NoArgsConstructor
public static class FutureChannelBan {
@Nullable
@JsonProperty("user")
private User user;

@Nullable
@JsonProperty("expires")
private Date expires;

@Nullable
@JsonProperty("reason")
private String reason;

@Nullable
@JsonProperty("shadow")
private Boolean shadow;

@NotNull
@JsonProperty("created_at")
private Date createdAt;
}

@Data
@NoArgsConstructor
public static class OwnUser {
Expand Down Expand Up @@ -799,6 +824,10 @@ public static class UserBanRequestData {
@JsonProperty("user")
private UserRequestObject user;

@Nullable
@JsonProperty("ban_from_future_channels")
private Boolean banFromFutureChannels;

public static class UserBanRequest extends StreamRequest<StreamResponseObject> {
@Override
protected Call<StreamResponseObject> generateCall(Client client) {
Expand Down Expand Up @@ -1078,6 +1107,8 @@ public static class UserUnbanRequest extends StreamRequest<StreamResponseObject>

@Nullable private Boolean shadow;

@Nullable private Boolean removeFutureChannelsBan;

@NotNull
public UserUnbanRequest type(@NotNull String type) {
this.type = type;
Expand All @@ -1096,9 +1127,17 @@ public UserUnbanRequest shadow(@NotNull Boolean shadow) {
return this;
}

@NotNull
public UserUnbanRequest removeFutureChannelsBan(@NotNull Boolean removeFutureChannelsBan) {
this.removeFutureChannelsBan = removeFutureChannelsBan;
return this;
}

@Override
protected Call<StreamResponseObject> generateCall(Client client) {
return client.create(UserService.class).unban(targetUserId, type, id, shadow);
return client
.create(UserService.class)
.unban(targetUserId, type, id, shadow, removeFutureChannelsBan);
}
}

Expand Down Expand Up @@ -1171,6 +1210,47 @@ public static class UserQueryBannedResponse extends StreamResponseObject {
private List<Ban> bans;
}

@Builder(
builderClassName = "UserQueryFutureChannelBansRequest",
builderMethodName = "",
buildMethodName = "internalBuild")
@Getter
@EqualsAndHashCode
public static class UserQueryFutureChannelBansRequestData {
@Nullable
@JsonProperty("user_id")
private String userId;

@Nullable
@JsonProperty("exclude_expired_bans")
private Boolean excludeExpiredBans;

@Nullable
@JsonProperty("limit")
private Integer limit;

@Nullable
@JsonProperty("offset")
private Integer offset;

public static class UserQueryFutureChannelBansRequest
extends StreamRequest<UserQueryFutureChannelBansResponse> {
@Override
protected Call<UserQueryFutureChannelBansResponse> generateCall(Client client) {
return client.create(UserService.class).queryFutureChannelBans(this.internalBuild());
}
}
}

@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public static class UserQueryFutureChannelBansResponse extends StreamResponseObject {
@NotNull
@JsonProperty("bans")
private List<FutureChannelBan> bans;
}

@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
Expand Down Expand Up @@ -1305,6 +1385,16 @@ public static UserQueryBannedRequest queryBanned() {
return new UserQueryBannedRequest();
}

/**
* Creates a query future channel bans request
*
* @return the created request
*/
@NotNull
public static UserQueryFutureChannelBansRequest queryFutureChannelBans() {
return new UserQueryFutureChannelBansRequest();
}

/**
* Creates a deactivate request
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,5 +65,10 @@ Call<StreamResponseObject> unban(
@NotNull @Query("target_user_id") String targetUserId,
@Nullable @Query("type") String channelType,
@Nullable @Query("id") String channelId,
@Nullable @Query("shadow") Boolean shadow);
@Nullable @Query("shadow") Boolean shadow,
@Nullable @Query("remove_future_channels_ban") Boolean removeFutureChannelsBan);

@GET("query_future_channel_bans")
Call<UserQueryFutureChannelBansResponse> queryFutureChannelBans(
@NotNull @ToJson @Query("payload") UserQueryFutureChannelBansRequestData requestData);
}