From 41a6e6f67aebf2f62da460b62fa0c9d069d74ea2 Mon Sep 17 00:00:00 2001 From: Gian <47775302+gpunto@users.noreply.github.com> Date: Mon, 6 Jul 2026 16:58:16 +0200 Subject: [PATCH] Migrate channel hide, mute, and partial-update requests to generated models --- .../chat/android/client/api2/MoshiChatApi.kt | 12 +++++----- .../client/api2/endpoint/ChannelApi.kt | 4 ++-- .../client/api2/endpoint/ModerationApi.kt | 2 +- .../models}/HideChannelRequest.kt | 20 ++++++++++++---- .../models}/MuteChannelRequest.kt | 24 +++++++++++++++---- .../models}/UpdateChannelPartialRequest.kt | 24 +++++++++++++++---- .../android/client/api2/MoshiChatApiTest.kt | 10 ++++---- 7 files changed, 68 insertions(+), 28 deletions(-) rename stream-chat-android-client/src/main/java/io/getstream/chat/android/{client/api2/model/requests => network/models}/HideChannelRequest.kt (65%) rename stream-chat-android-client/src/main/java/io/getstream/chat/android/{client/api2/model/requests => network/models}/MuteChannelRequest.kt (60%) rename stream-chat-android-client/src/main/java/io/getstream/chat/android/{client/api2/model/requests => network/models}/UpdateChannelPartialRequest.kt (61%) diff --git a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/MoshiChatApi.kt b/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/MoshiChatApi.kt index 387a2188a48..2b0bc153390 100644 --- a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/MoshiChatApi.kt +++ b/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/MoshiChatApi.kt @@ -59,12 +59,10 @@ import io.getstream.chat.android.client.api2.model.requests.FlagMessageRequest import io.getstream.chat.android.client.api2.model.requests.FlagRequest import io.getstream.chat.android.client.api2.model.requests.FlagUserRequest import io.getstream.chat.android.client.api2.model.requests.GuestUserRequest -import io.getstream.chat.android.client.api2.model.requests.HideChannelRequest import io.getstream.chat.android.client.api2.model.requests.InviteMembersRequest import io.getstream.chat.android.client.api2.model.requests.MarkDeliveredRequest import io.getstream.chat.android.client.api2.model.requests.MarkReadRequest import io.getstream.chat.android.client.api2.model.requests.MarkUnreadRequest -import io.getstream.chat.android.client.api2.model.requests.MuteChannelRequest import io.getstream.chat.android.client.api2.model.requests.MuteUserRequest import io.getstream.chat.android.client.api2.model.requests.PartialUpdateMessageRequest import io.getstream.chat.android.client.api2.model.requests.PartialUpdatePollRequest @@ -91,7 +89,6 @@ import io.getstream.chat.android.client.api2.model.requests.SendEventRequest import io.getstream.chat.android.client.api2.model.requests.SendMessageRequest import io.getstream.chat.android.client.api2.model.requests.SyncHistoryRequest import io.getstream.chat.android.client.api2.model.requests.TruncateChannelRequest -import io.getstream.chat.android.client.api2.model.requests.UpdateChannelPartialRequest import io.getstream.chat.android.client.api2.model.requests.UpdateChannelRequest import io.getstream.chat.android.client.api2.model.requests.UpdateCooldownRequest import io.getstream.chat.android.client.api2.model.requests.UpdateLiveLocationRequest @@ -168,7 +165,10 @@ import io.getstream.chat.android.models.VotingVisibility import io.getstream.chat.android.models.querysort.QuerySorter import io.getstream.chat.android.network.models.BlockUsersRequest import io.getstream.chat.android.network.models.CreateDeviceRequest +import io.getstream.chat.android.network.models.HideChannelRequest +import io.getstream.chat.android.network.models.MuteChannelRequest import io.getstream.chat.android.network.models.UnblockUsersRequest +import io.getstream.chat.android.network.models.UpdateChannelPartialRequest import io.getstream.log.taggedLogger import io.getstream.result.Error import io.getstream.result.Result @@ -732,7 +732,7 @@ constructor( ): Call { return moderationApi.muteChannel( body = MuteChannelRequest( - channel_cid = "$channelType:$channelId", + channelCids = listOf("$channelType:$channelId"), expiration = expiration, ), ).toUnitCall() @@ -744,7 +744,7 @@ constructor( ): Call { return moderationApi.unmuteChannel( body = MuteChannelRequest( - channel_cid = "$channelType:$channelId", + channelCids = listOf("$channelType:$channelId"), expiration = null, ), ).toUnitCall() @@ -1075,7 +1075,7 @@ constructor( return channelApi.updateChannelPartial( channelType = channelType, channelId = channelId, - body = UpdateChannelPartialRequest(set, unset), + body = UpdateChannelPartialRequest(set = set, unset = unset), ).map(this::flattenChannel) } diff --git a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/endpoint/ChannelApi.kt b/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/endpoint/ChannelApi.kt index 394ba2e1839..10798f5d8aa 100644 --- a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/endpoint/ChannelApi.kt +++ b/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/endpoint/ChannelApi.kt @@ -21,7 +21,6 @@ import io.getstream.chat.android.client.api.QueryParams import io.getstream.chat.android.client.api2.UrlQueryPayload import io.getstream.chat.android.client.api2.model.requests.AcceptInviteRequest import io.getstream.chat.android.client.api2.model.requests.AddMembersRequest -import io.getstream.chat.android.client.api2.model.requests.HideChannelRequest import io.getstream.chat.android.client.api2.model.requests.InviteMembersRequest import io.getstream.chat.android.client.api2.model.requests.MarkDeliveredRequest import io.getstream.chat.android.client.api2.model.requests.MarkReadRequest @@ -34,7 +33,6 @@ import io.getstream.chat.android.client.api2.model.requests.RejectInviteRequest import io.getstream.chat.android.client.api2.model.requests.RemoveMembersRequest import io.getstream.chat.android.client.api2.model.requests.SendEventRequest import io.getstream.chat.android.client.api2.model.requests.TruncateChannelRequest -import io.getstream.chat.android.client.api2.model.requests.UpdateChannelPartialRequest import io.getstream.chat.android.client.api2.model.requests.UpdateChannelRequest import io.getstream.chat.android.client.api2.model.requests.UpdateCooldownRequest import io.getstream.chat.android.client.api2.model.requests.UpdateMemberPartialRequest @@ -45,7 +43,9 @@ import io.getstream.chat.android.client.api2.model.response.MessagesResponse import io.getstream.chat.android.client.api2.model.response.QueryChannelsResponse import io.getstream.chat.android.client.api2.model.response.QueryGroupedChannelsResponse import io.getstream.chat.android.client.call.RetrofitCall +import io.getstream.chat.android.network.models.HideChannelRequest import io.getstream.chat.android.network.models.Response +import io.getstream.chat.android.network.models.UpdateChannelPartialRequest import retrofit2.http.Body import retrofit2.http.DELETE import retrofit2.http.GET diff --git a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/endpoint/ModerationApi.kt b/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/endpoint/ModerationApi.kt index 31d0a4bb0d3..b46d64359d1 100644 --- a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/endpoint/ModerationApi.kt +++ b/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/endpoint/ModerationApi.kt @@ -20,13 +20,13 @@ import io.getstream.chat.android.client.api.AuthenticatedApi import io.getstream.chat.android.client.api2.UrlQueryPayload import io.getstream.chat.android.client.api2.model.requests.BanUserRequest import io.getstream.chat.android.client.api2.model.requests.FlagRequest -import io.getstream.chat.android.client.api2.model.requests.MuteChannelRequest import io.getstream.chat.android.client.api2.model.requests.MuteUserRequest import io.getstream.chat.android.client.api2.model.requests.QueryBannedUsersRequest import io.getstream.chat.android.client.api2.model.response.FlagResponse import io.getstream.chat.android.client.api2.model.response.MuteUserResponse import io.getstream.chat.android.client.api2.model.response.QueryBannedUsersResponse import io.getstream.chat.android.client.call.RetrofitCall +import io.getstream.chat.android.network.models.MuteChannelRequest import io.getstream.chat.android.network.models.Response import retrofit2.http.Body import retrofit2.http.DELETE diff --git a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/model/requests/HideChannelRequest.kt b/stream-chat-android-client/src/main/java/io/getstream/chat/android/network/models/HideChannelRequest.kt similarity index 65% rename from stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/model/requests/HideChannelRequest.kt rename to stream-chat-android-client/src/main/java/io/getstream/chat/android/network/models/HideChannelRequest.kt index 742b6fdafd2..645109b3dee 100644 --- a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/model/requests/HideChannelRequest.kt +++ b/stream-chat-android-client/src/main/java/io/getstream/chat/android/network/models/HideChannelRequest.kt @@ -14,11 +14,23 @@ * limitations under the License. */ -package io.getstream.chat.android.client.api2.model.requests +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport", +) + +package io.getstream.chat.android.network.models + +import com.squareup.moshi.Json -import com.squareup.moshi.JsonClass +/** + * + */ -@JsonClass(generateAdapter = true) +@com.squareup.moshi.JsonClass(generateAdapter = true) internal data class HideChannelRequest( - val clear_history: Boolean, + @Json(name = "clear_history") + internal val clearHistory: Boolean? = null, ) diff --git a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/model/requests/MuteChannelRequest.kt b/stream-chat-android-client/src/main/java/io/getstream/chat/android/network/models/MuteChannelRequest.kt similarity index 60% rename from stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/model/requests/MuteChannelRequest.kt rename to stream-chat-android-client/src/main/java/io/getstream/chat/android/network/models/MuteChannelRequest.kt index df4551e5af2..f89c18c82e6 100644 --- a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/model/requests/MuteChannelRequest.kt +++ b/stream-chat-android-client/src/main/java/io/getstream/chat/android/network/models/MuteChannelRequest.kt @@ -14,12 +14,26 @@ * limitations under the License. */ -package io.getstream.chat.android.client.api2.model.requests +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport", +) + +package io.getstream.chat.android.network.models + +import com.squareup.moshi.Json -import com.squareup.moshi.JsonClass +/** + * + */ -@JsonClass(generateAdapter = true) +@com.squareup.moshi.JsonClass(generateAdapter = true) internal data class MuteChannelRequest( - val channel_cid: String, - val expiration: Int?, + @Json(name = "expiration") + internal val expiration: Int? = null, + + @Json(name = "channel_cids") + internal val channelCids: List? = emptyList(), ) diff --git a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/model/requests/UpdateChannelPartialRequest.kt b/stream-chat-android-client/src/main/java/io/getstream/chat/android/network/models/UpdateChannelPartialRequest.kt similarity index 61% rename from stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/model/requests/UpdateChannelPartialRequest.kt rename to stream-chat-android-client/src/main/java/io/getstream/chat/android/network/models/UpdateChannelPartialRequest.kt index 42caada9f1c..eeb42f82fb9 100644 --- a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/model/requests/UpdateChannelPartialRequest.kt +++ b/stream-chat-android-client/src/main/java/io/getstream/chat/android/network/models/UpdateChannelPartialRequest.kt @@ -14,12 +14,26 @@ * limitations under the License. */ -package io.getstream.chat.android.client.api2.model.requests +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport", +) + +package io.getstream.chat.android.network.models + +import com.squareup.moshi.Json -import com.squareup.moshi.JsonClass +/** + * + */ -@JsonClass(generateAdapter = true) +@com.squareup.moshi.JsonClass(generateAdapter = true) internal data class UpdateChannelPartialRequest( - val set: Map, - val unset: List, + @Json(name = "unset") + internal val unset: List? = emptyList(), + + @Json(name = "set") + internal val set: Map? = emptyMap(), ) diff --git a/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/api2/MoshiChatApiTest.kt b/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/api2/MoshiChatApiTest.kt index 5d4150c03cd..2c51d922775 100644 --- a/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/api2/MoshiChatApiTest.kt +++ b/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/api2/MoshiChatApiTest.kt @@ -55,11 +55,9 @@ import io.getstream.chat.android.client.api2.model.requests.DeliveredMessageDto import io.getstream.chat.android.client.api2.model.requests.FlagMessageRequest import io.getstream.chat.android.client.api2.model.requests.FlagUserRequest import io.getstream.chat.android.client.api2.model.requests.GuestUserRequest -import io.getstream.chat.android.client.api2.model.requests.HideChannelRequest import io.getstream.chat.android.client.api2.model.requests.MarkDeliveredRequest import io.getstream.chat.android.client.api2.model.requests.MarkReadRequest import io.getstream.chat.android.client.api2.model.requests.MarkUnreadRequest -import io.getstream.chat.android.client.api2.model.requests.MuteChannelRequest import io.getstream.chat.android.client.api2.model.requests.MuteUserRequest import io.getstream.chat.android.client.api2.model.requests.PartialUpdateMessageRequest import io.getstream.chat.android.client.api2.model.requests.PartialUpdatePollRequest @@ -79,7 +77,6 @@ import io.getstream.chat.android.client.api2.model.requests.ReminderRequest import io.getstream.chat.android.client.api2.model.requests.RemoveUserGroupMembersRequest import io.getstream.chat.android.client.api2.model.requests.SendActionRequest import io.getstream.chat.android.client.api2.model.requests.SendEventRequest -import io.getstream.chat.android.client.api2.model.requests.UpdateChannelPartialRequest import io.getstream.chat.android.client.api2.model.requests.UpdateCooldownRequest import io.getstream.chat.android.client.api2.model.requests.UpdateLiveLocationRequest import io.getstream.chat.android.client.api2.model.requests.UpdateMemberPartialRequest @@ -165,10 +162,13 @@ import io.getstream.chat.android.models.querysort.QuerySortByField.Companion.des import io.getstream.chat.android.network.models.BlockUsersRequest import io.getstream.chat.android.network.models.BlockUsersResponse import io.getstream.chat.android.network.models.CreateDeviceRequest +import io.getstream.chat.android.network.models.HideChannelRequest import io.getstream.chat.android.network.models.ListDevicesResponse +import io.getstream.chat.android.network.models.MuteChannelRequest import io.getstream.chat.android.network.models.Response import io.getstream.chat.android.network.models.UnblockUsersRequest import io.getstream.chat.android.network.models.UnblockUsersResponse +import io.getstream.chat.android.network.models.UpdateChannelPartialRequest import io.getstream.chat.android.positiveRandomInt import io.getstream.chat.android.randomBoolean import io.getstream.chat.android.randomCID @@ -674,7 +674,7 @@ internal class MoshiChatApiTest { val result = sut.muteChannel(channelType, channelId, expiration).await() // then val expectedRequest = MuteChannelRequest( - channel_cid = "$channelType:$channelId", + channelCids = listOf("$channelType:$channelId"), expiration = expiration, ) result `should be instance of` expected @@ -696,7 +696,7 @@ internal class MoshiChatApiTest { val result = sut.unmuteChannel(channelType, channelId).await() // then val expectedRequest = MuteChannelRequest( - channel_cid = "$channelType:$channelId", + channelCids = listOf("$channelType:$channelId"), expiration = null, ) result `should be instance of` expected