Skip to content
Merged
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
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@ 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.MuteUserRequest
import io.getstream.chat.android.client.api2.model.requests.PinnedMessagesRequest
import io.getstream.chat.android.client.api2.model.requests.QueryBannedUsersRequest
import io.getstream.chat.android.client.api2.model.requests.SyncHistoryRequest
import io.getstream.chat.android.client.api2.model.response.ChannelResponse
import io.getstream.chat.android.client.call.RetrofitCall
Expand Down Expand Up @@ -142,6 +141,7 @@ import io.getstream.chat.android.network.models.PollOptionInput
import io.getstream.chat.android.network.models.PollOptionRequest
import io.getstream.chat.android.network.models.PollVoteResponse
import io.getstream.chat.android.network.models.PushPreferenceInput
import io.getstream.chat.android.network.models.QueryBannedUsersPayload
import io.getstream.chat.android.network.models.QueryDraftsRequest
import io.getstream.chat.android.network.models.QueryMembersPayload
import io.getstream.chat.android.network.models.QueryPollVotesRequest
Expand Down Expand Up @@ -969,15 +969,15 @@ constructor(
createdAtBeforeOrEqual: Date?,
): Call<List<BannedUser>> {
return moderationApi.queryBannedUsers(
payload = QueryBannedUsersRequest(
filter_conditions = filter.toMap(),
sort = sort.toDto(),
payload = QueryBannedUsersPayload(
filterConditions = filter.toMap(),
sort = sort.toSortParams(),
offset = offset,
limit = limit,
created_at_after = createdAtAfter,
created_at_after_or_equal = createdAtAfterOrEqual,
created_at_before = createdAtBefore,
created_at_before_or_equal = createdAtBeforeOrEqual,
createdAtAfter = createdAtAfter,
createdAtAfterOrEqual = createdAtAfterOrEqual,
createdAtBefore = createdAtBefore,
createdAtBeforeOrEqual = createdAtBeforeOrEqual,
),
).flatMapDomain { response ->
val bans = response.bans.mapNotNull { it.toDomain() }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ 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.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.call.RetrofitCall
import io.getstream.chat.android.network.models.MuteChannelRequest
import io.getstream.chat.android.network.models.QueryBannedUsersPayload
import io.getstream.chat.android.network.models.QueryBannedUsersResponse
import io.getstream.chat.android.network.models.Response
import retrofit2.http.Body
Expand Down Expand Up @@ -68,6 +68,6 @@ internal interface ModerationApi {

@GET("/query_banned_users")
fun queryBannedUsers(
@UrlQueryPayload @Query("payload") payload: QueryBannedUsersRequest,
@UrlQueryPayload @Query("payload") payload: QueryBannedUsersPayload,
): RetrofitCall<QueryBannedUsersResponse>
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
/*
* 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

/**
*
*/
@com.squareup.moshi.JsonClass(generateAdapter = true)
internal data class QueryBannedUsersPayload(
@Json(name = "filter_conditions")
internal val filterConditions: Map<String, Any?> = emptyMap(),

@Json(name = "created_at_after")
internal val createdAtAfter: java.util.Date? = null,

@Json(name = "created_at_after_or_equal")
internal val createdAtAfterOrEqual: java.util.Date? = null,

@Json(name = "created_at_before")
internal val createdAtBefore: java.util.Date? = null,

@Json(name = "created_at_before_or_equal")
internal val createdAtBeforeOrEqual: java.util.Date? = null,

@Json(name = "exclude_expired_bans")
internal val excludeExpiredBans: Boolean? = null,

@Json(name = "limit")
internal val limit: Int? = null,

@Json(name = "offset")
internal val offset: Int? = null,

@Json(name = "sort")
internal val sort: List<io.getstream.chat.android.network.models.SortParamRequest>? = null,
)
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ 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.MuteUserRequest
import io.getstream.chat.android.client.api2.model.requests.PinnedMessagesRequest
import io.getstream.chat.android.client.api2.model.requests.QueryBannedUsersRequest
import io.getstream.chat.android.client.api2.model.response.ChannelResponse
import io.getstream.chat.android.client.api2.model.response.DraftMessageResponse
import io.getstream.chat.android.client.api2.model.response.EventResponse
Expand Down Expand Up @@ -148,6 +147,7 @@ import io.getstream.chat.android.network.models.PollVoteResponse
import io.getstream.chat.android.network.models.PollVotesResponse
import io.getstream.chat.android.network.models.PushPreferenceInput
import io.getstream.chat.android.network.models.PushPreferencesResponse
import io.getstream.chat.android.network.models.QueryBannedUsersPayload
import io.getstream.chat.android.network.models.QueryBannedUsersResponse
import io.getstream.chat.android.network.models.QueryDraftsRequest
import io.getstream.chat.android.network.models.QueryMembersPayload
Expand Down Expand Up @@ -1217,15 +1217,15 @@ internal class MoshiChatApiTest {
createdAtBeforeOrEqual = createdAtBeforeOrEqual,
).await()
// then
val expectedPayload = QueryBannedUsersRequest(
filter_conditions = filter.toMap(),
sort = sort.toDto(),
val expectedPayload = QueryBannedUsersPayload(
filterConditions = filter.toMap(),
sort = listOf(SortParamRequest(field = "created_at", direction = 1)),
offset = offset,
limit = limit,
created_at_after = createdAtAfter,
created_at_after_or_equal = createdAtAfterOrEqual,
created_at_before = createdAtBefore,
created_at_before_or_equal = createdAtBeforeOrEqual,
createdAtAfter = createdAtAfter,
createdAtAfterOrEqual = createdAtAfterOrEqual,
createdAtBefore = createdAtBefore,
createdAtBeforeOrEqual = createdAtBeforeOrEqual,
)
result `should be instance of` expected
verify(api, times(1)).queryBannedUsers(expectedPayload)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/*
* 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.parser2

import io.getstream.chat.android.client.parser2.testdata.QueryBannedUsersPayloadTestData
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test

internal class QueryBannedUsersPayloadAdapterTest {
private val parser = ParserFactory.createMoshiChatParser()

@Test
fun `Serialize QueryBannedUsersPayload with all fields`() {
val json = parser.toJson(QueryBannedUsersPayloadTestData.payload)
Assertions.assertEquals(QueryBannedUsersPayloadTestData.payloadJson, json)
}

@Test
fun `Serialize QueryBannedUsersPayload with default fields`() {
val json = parser.toJson(QueryBannedUsersPayloadTestData.payloadWithDefaults)
Assertions.assertEquals(QueryBannedUsersPayloadTestData.payloadJsonWithDefaults, json)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/*
* 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.parser2.testdata

import io.getstream.chat.android.network.models.QueryBannedUsersPayload
import io.getstream.chat.android.network.models.SortParamRequest
import org.intellij.lang.annotations.Language
import java.util.Date

internal object QueryBannedUsersPayloadTestData {

@Language("JSON")
val payloadJson =
"""{
"filter_conditions": {
"channel_cid": "messaging:abc"
},
"created_at_after": "2023-11-14T22:13:20.123Z",
"created_at_after_or_equal": "2023-11-14T22:13:21.000Z",
"created_at_before": "2027-01-15T08:00:00.000Z",
"created_at_before_or_equal": "1970-01-01T00:00:00.001Z",
"limit": 10,
"offset": 5,
"sort": [
{
"direction": -1,
"field": "created_at"
}
]
}""".withoutWhitespace()

val payload = QueryBannedUsersPayload(
filterConditions = mapOf("channel_cid" to "messaging:abc"),
createdAtAfter = Date(1_700_000_000_123),
createdAtAfterOrEqual = Date(1_700_000_001_000),
createdAtBefore = Date(1_800_000_000_000),
createdAtBeforeOrEqual = Date(1),
limit = 10,
offset = 5,
sort = listOf(SortParamRequest(direction = -1, field = "created_at")),
)

@Language("JSON")
val payloadJsonWithDefaults = """{"filter_conditions":{}}"""

val payloadWithDefaults = QueryBannedUsersPayload()
}
Loading