diff --git a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/endpoint/RoleApi.kt b/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/endpoint/RoleApi.kt index 63b2eeaa5eb..76b3485c414 100644 --- a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/endpoint/RoleApi.kt +++ b/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/endpoint/RoleApi.kt @@ -17,8 +17,8 @@ package io.getstream.chat.android.client.api2.endpoint import io.getstream.chat.android.client.api.AuthenticatedApi -import io.getstream.chat.android.client.api2.model.response.SearchRolesResponse import io.getstream.chat.android.client.call.RetrofitCall +import io.getstream.chat.android.network.models.SearchRolesResponse import retrofit2.http.GET import retrofit2.http.Query diff --git a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/mapping/DomainMapping.kt b/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/mapping/DomainMapping.kt index 88a91becc4a..765010244a6 100644 --- a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/mapping/DomainMapping.kt +++ b/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/mapping/DomainMapping.kt @@ -46,7 +46,6 @@ import io.getstream.chat.android.client.api2.model.dto.DownstreamReactionDto import io.getstream.chat.android.client.api2.model.dto.DownstreamReactionGroupDto import io.getstream.chat.android.client.api2.model.dto.DownstreamReminderDto import io.getstream.chat.android.client.api2.model.dto.DownstreamReminderInfoDto -import io.getstream.chat.android.client.api2.model.dto.DownstreamRoleDto import io.getstream.chat.android.client.api2.model.dto.DownstreamThreadDto import io.getstream.chat.android.client.api2.model.dto.DownstreamThreadInfoDto import io.getstream.chat.android.client.api2.model.dto.DownstreamThreadParticipantDto @@ -139,6 +138,7 @@ import io.getstream.chat.android.models.querysort.SortDirection import io.getstream.chat.android.network.models.BlockUsersResponse import io.getstream.chat.android.network.models.DeviceResponse import java.util.Date +import io.getstream.chat.android.network.models.Role as RoleDto @Suppress("TooManyFunctions", "LargeClass") internal class DomainMapping( @@ -980,12 +980,12 @@ internal class DomainMapping( createdAt = created_at, ) - internal fun DownstreamRoleDto.toDomain(): Role = Role( + internal fun RoleDto.toDomain(): Role = Role( name = name, custom = custom, scopes = scopes, - createdAt = created_at, - updatedAt = updated_at, + createdAt = createdAt, + updatedAt = updatedAt, ) private companion object { diff --git a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/model/dto/DownstreamRoleDto.kt b/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/model/dto/DownstreamRoleDto.kt deleted file mode 100644 index 6bb362470e2..00000000000 --- a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/model/dto/DownstreamRoleDto.kt +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2014-2026 Stream.io Inc. All rights reserved. - * - * Licensed under the Stream License; - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://github.com/GetStream/stream-chat-android/blob/main/LICENSE - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.getstream.chat.android.client.api2.model.dto - -import com.squareup.moshi.JsonClass -import java.util.Date - -@JsonClass(generateAdapter = true) -internal data class DownstreamRoleDto( - val name: String, - val custom: Boolean = false, - val scopes: List = emptyList(), - val created_at: Date? = null, - val updated_at: Date? = null, -) diff --git a/stream-chat-android-client/src/main/java/io/getstream/chat/android/network/models/Role.kt b/stream-chat-android-client/src/main/java/io/getstream/chat/android/network/models/Role.kt new file mode 100644 index 00000000000..97204897813 --- /dev/null +++ b/stream-chat-android-client/src/main/java/io/getstream/chat/android/network/models/Role.kt @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2014-2026 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-chat-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport", +) + +package io.getstream.chat.android.network.models + +import com.squareup.moshi.Json +import kotlin.collections.List + +/** + * + */ + +@com.squareup.moshi.JsonClass(generateAdapter = true) +internal data class Role( + @Json(name = "created_at") + val createdAt: java.util.Date, + + @Json(name = "custom") + val custom: kotlin.Boolean, + + @Json(name = "name") + val name: kotlin.String, + + @Json(name = "updated_at") + val updatedAt: java.util.Date, + + @Json(name = "scopes") + val scopes: kotlin.collections.List = emptyList(), +) diff --git a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/model/response/SearchRolesResponse.kt b/stream-chat-android-client/src/main/java/io/getstream/chat/android/network/models/SearchRolesResponse.kt similarity index 57% rename from stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/model/response/SearchRolesResponse.kt rename to stream-chat-android-client/src/main/java/io/getstream/chat/android/network/models/SearchRolesResponse.kt index f8be69e5043..2731b96b87d 100644 --- a/stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/model/response/SearchRolesResponse.kt +++ b/stream-chat-android-client/src/main/java/io/getstream/chat/android/network/models/SearchRolesResponse.kt @@ -14,13 +14,27 @@ * limitations under the License. */ -package io.getstream.chat.android.client.api2.model.response +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport", +) + +package io.getstream.chat.android.network.models + +import com.squareup.moshi.Json +import kotlin.collections.List -import com.squareup.moshi.JsonClass -import io.getstream.chat.android.client.api2.model.dto.DownstreamRoleDto +/** + * + */ -@JsonClass(generateAdapter = true) +@com.squareup.moshi.JsonClass(generateAdapter = true) internal data class SearchRolesResponse( - val roles: List = emptyList(), - val duration: String? = null, + @Json(name = "duration") + val duration: kotlin.String, + + @Json(name = "roles") + val roles: kotlin.collections.List = emptyList(), ) diff --git a/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/Mother.kt b/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/Mother.kt index 7891064ef31..b29067a50f3 100644 --- a/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/Mother.kt +++ b/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/Mother.kt @@ -48,7 +48,6 @@ import io.getstream.chat.android.client.api2.model.dto.DownstreamPushPreferenceD import io.getstream.chat.android.client.api2.model.dto.DownstreamReactionDto import io.getstream.chat.android.client.api2.model.dto.DownstreamReactionGroupDto import io.getstream.chat.android.client.api2.model.dto.DownstreamReminderDto -import io.getstream.chat.android.client.api2.model.dto.DownstreamRoleDto import io.getstream.chat.android.client.api2.model.dto.DownstreamThreadDto import io.getstream.chat.android.client.api2.model.dto.DownstreamThreadInfoDto import io.getstream.chat.android.client.api2.model.dto.DownstreamThreadParticipantDto @@ -124,6 +123,7 @@ import org.mockito.kotlin.doReturn import org.mockito.kotlin.mock import org.mockito.kotlin.whenever import java.util.Date +import io.getstream.chat.android.network.models.Role as RoleDto @Suppress("LargeClass") internal object Mother { @@ -1425,18 +1425,18 @@ internal object Mother { updated_at = updatedAt, ) - fun randomDownstreamRoleDto( + fun randomRoleDto( name: String = randomString(), custom: Boolean = randomBoolean(), scopes: List = emptyList(), - createdAt: Date? = randomDate(), - updatedAt: Date? = randomDate(), - ): DownstreamRoleDto = DownstreamRoleDto( + createdAt: Date = randomDate(), + updatedAt: Date = randomDate(), + ): RoleDto = RoleDto( name = name, custom = custom, scopes = scopes, - created_at = createdAt, - updated_at = updatedAt, + createdAt = createdAt, + updatedAt = updatedAt, ) } 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..1b75d9b4d9d 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 @@ -117,7 +117,6 @@ import io.getstream.chat.android.client.api2.model.response.ReactionResponse import io.getstream.chat.android.client.api2.model.response.ReactionsResponse import io.getstream.chat.android.client.api2.model.response.ReminderResponse import io.getstream.chat.android.client.api2.model.response.SearchMessagesResponse -import io.getstream.chat.android.client.api2.model.response.SearchRolesResponse import io.getstream.chat.android.client.api2.model.response.SyncHistoryResponse import io.getstream.chat.android.client.api2.model.response.ThreadInfoResponse import io.getstream.chat.android.client.api2.model.response.ThreadResponse @@ -167,6 +166,7 @@ import io.getstream.chat.android.network.models.BlockUsersResponse import io.getstream.chat.android.network.models.CreateDeviceRequest import io.getstream.chat.android.network.models.ListDevicesResponse import io.getstream.chat.android.network.models.Response +import io.getstream.chat.android.network.models.SearchRolesResponse import io.getstream.chat.android.network.models.UnblockUsersRequest import io.getstream.chat.android.network.models.UnblockUsersResponse import io.getstream.chat.android.positiveRandomInt diff --git a/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/api2/MoshiChatApiTestArguments.kt b/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/api2/MoshiChatApiTestArguments.kt index f55767ccdd6..2c2feb331b9 100644 --- a/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/api2/MoshiChatApiTestArguments.kt +++ b/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/api2/MoshiChatApiTestArguments.kt @@ -58,7 +58,6 @@ import io.getstream.chat.android.client.api2.model.response.ReactionResponse import io.getstream.chat.android.client.api2.model.response.ReactionsResponse import io.getstream.chat.android.client.api2.model.response.ReminderResponse import io.getstream.chat.android.client.api2.model.response.SearchMessagesResponse -import io.getstream.chat.android.client.api2.model.response.SearchRolesResponse import io.getstream.chat.android.client.api2.model.response.SyncHistoryResponse import io.getstream.chat.android.client.api2.model.response.ThreadInfoResponse import io.getstream.chat.android.client.api2.model.response.ThreadResponse @@ -79,6 +78,7 @@ import io.getstream.chat.android.models.UploadedFile import io.getstream.chat.android.network.models.BlockUsersResponse import io.getstream.chat.android.network.models.ListDevicesResponse import io.getstream.chat.android.network.models.Response +import io.getstream.chat.android.network.models.SearchRolesResponse import io.getstream.chat.android.network.models.UnblockUsersResponse import io.getstream.chat.android.positiveRandomInt import io.getstream.chat.android.randomBoolean @@ -950,7 +950,7 @@ internal object MoshiChatApiTestArguments { fun searchRolesInput() = listOf( Arguments.of( RetroSuccess( - SearchRolesResponse(roles = listOf(Mother.randomDownstreamRoleDto())), + SearchRolesResponse(duration = randomString(), roles = listOf(Mother.randomRoleDto())), ).toRetrofitCall(), Result.Success::class, ), diff --git a/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/api2/mapping/DomainMappingTest.kt b/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/api2/mapping/DomainMappingTest.kt index 0be9aa5c220..e6df32df127 100644 --- a/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/api2/mapping/DomainMappingTest.kt +++ b/stream-chat-android-client/src/test/java/io/getstream/chat/android/client/api2/mapping/DomainMappingTest.kt @@ -45,7 +45,6 @@ import io.getstream.chat.android.client.Mother.randomDownstreamPollDto import io.getstream.chat.android.client.Mother.randomDownstreamReactionDto import io.getstream.chat.android.client.Mother.randomDownstreamReactionGroupDto import io.getstream.chat.android.client.Mother.randomDownstreamReminderDto -import io.getstream.chat.android.client.Mother.randomDownstreamRoleDto import io.getstream.chat.android.client.Mother.randomDownstreamThreadDto import io.getstream.chat.android.client.Mother.randomDownstreamThreadInfoDto import io.getstream.chat.android.client.Mother.randomDownstreamThreadParticipantDto @@ -57,6 +56,7 @@ import io.getstream.chat.android.client.Mother.randomPrivacySettingsDto import io.getstream.chat.android.client.Mother.randomQueryPollVotesResponse import io.getstream.chat.android.client.Mother.randomQueryPollsResponse import io.getstream.chat.android.client.Mother.randomQueryRemindersResponse +import io.getstream.chat.android.client.Mother.randomRoleDto import io.getstream.chat.android.client.Mother.randomSearchWarningDto import io.getstream.chat.android.client.Mother.randomUnreadChannelByTypeDto import io.getstream.chat.android.client.Mother.randomUnreadChannelDto @@ -948,16 +948,16 @@ internal class DomainMappingTest { } @Test - fun `DownstreamRoleDto is correctly mapped to Role`() { - val dto = randomDownstreamRoleDto() + fun `RoleDto is correctly mapped to Role`() { + val dto = randomRoleDto() val sut = Fixture().get() val role = with(sut) { dto.toDomain() } val expected = Role( name = dto.name, custom = dto.custom, scopes = dto.scopes, - createdAt = dto.created_at, - updatedAt = dto.updated_at, + createdAt = dto.createdAt, + updatedAt = dto.updatedAt, ) assertEquals(expected, role) }