Skip to content

Commit 7f9859e

Browse files
fix: missing json value pagingState when getting team member by ID (#2578)
* Commit with unresolved merge conflicts outside of * resolve conflicts * test --------- Co-authored-by: Mohamad Jaara <[email protected]>
1 parent 00706fc commit 7f9859e

File tree

4 files changed

+23
-12
lines changed

4 files changed

+23
-12
lines changed

logic/src/commonTest/kotlin/com/wire/kalium/logic/data/team/TeamRepositoryTest.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ class TeamRepositoryTest {
111111
nonQualifiedUserId = "teamMember1"
112112
)
113113

114-
val teamMembersList = TeamsApi.TeamMemberList(
114+
val teamMembersList = TeamsApi.TeamMemberListPaginated(
115115
hasMore = false,
116116
members = listOf(
117117
teamMember
@@ -173,7 +173,7 @@ class TeamRepositoryTest {
173173
nonQualifiedUserId = "teamMember1"
174174
)
175175

176-
val teamMembersList = TeamsApi.TeamMemberList(
176+
val teamMembersList = TeamsApi.TeamMemberListPaginated(
177177
hasMore = true,
178178
members = listOf(
179179
teamMember
@@ -523,7 +523,7 @@ class TeamRepositoryTest {
523523
.thenReturn(Either.Right(Unit))
524524
}
525525

526-
fun withGetTeamMembers(result: NetworkResponse<TeamsApi.TeamMemberList>) = apply {
526+
fun withGetTeamMembers(result: NetworkResponse<TeamsApi.TeamMemberListPaginated>) = apply {
527527
given(teamsApi)
528528
.suspendFunction(teamsApi::getTeamMembers)
529529
.whenInvokedWith(any(), any())

logic/src/commonTest/kotlin/com/wire/kalium/logic/data/user/UserRepositoryTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -886,7 +886,7 @@ class UserRepositoryTest {
886886
given(teamsApi)
887887
.suspendFunction(teamsApi::getTeamMembersByIds)
888888
.whenInvokedWith(any(), any())
889-
.thenReturn(NetworkResponse.Success(TeamsApi.TeamMemberList(false, result, "A=="), mapOf(), 200))
889+
.thenReturn(NetworkResponse.Success(TeamsApi.TeamMemberListNonPaginated(false, result), mapOf(), 200))
890890
}
891891

892892
fun withSuccessfulGetUsersByQualifiedIdList(knownUserEntities: List<UserDetailsEntity>) = apply {

network/src/commonMain/kotlin/com/wire/kalium/network/api/base/authenticated/TeamsApi.kt

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,20 @@ import kotlinx.serialization.Serializable
3232
interface TeamsApi {
3333

3434
@Serializable
35-
data class TeamMemberList(
35+
data class TeamMemberListPaginated(
3636
// Please note that this is intentionally cased differently form the has_more in TeamsResponse
3737
// because the backend response contains a different casing
3838
@SerialName("hasMore") val hasMore: Boolean,
3939
val members: List<TeamMemberDTO>,
40-
@SerialName("pagingState") val pagingState: String
40+
@SerialName("pagingState") val pagingState: String? = null
41+
)
42+
43+
@Serializable
44+
data class TeamMemberListNonPaginated(
45+
// Please note that this is intentionally cased differently form the has_more in TeamsResponse
46+
// because the backend response contains a different casing
47+
@SerialName("hasMore") val hasMore: Boolean,
48+
val members: List<TeamMemberDTO>
4149
)
4250

4351
@Serializable
@@ -89,9 +97,8 @@ interface TeamsApi {
8997
}
9098

9199
suspend fun deleteConversation(conversationId: NonQualifiedConversationId, teamId: TeamId): NetworkResponse<Unit>
92-
93-
suspend fun getTeamMembers(teamId: TeamId, limitTo: Int?, pagingState: String? = null): NetworkResponse<TeamMemberList>
94-
suspend fun getTeamMembersByIds(teamId: TeamId, teamMemberIdList: TeamMemberIdList): NetworkResponse<TeamMemberList>
100+
suspend fun getTeamMembers(teamId: TeamId, limitTo: Int?, pagingState: String? = null): NetworkResponse<TeamMemberListPaginated>
101+
suspend fun getTeamMembersByIds(teamId: TeamId, teamMemberIdList: TeamMemberIdList): NetworkResponse<TeamMemberListNonPaginated>
95102
suspend fun getTeamMember(teamId: TeamId, userId: NonQualifiedUserId): NetworkResponse<TeamMemberDTO>
96103
suspend fun getTeamInfo(teamId: TeamId): NetworkResponse<TeamDTO>
97104
suspend fun whiteListedServices(teamId: TeamId, size: Int = DEFAULT_SERVICES_SIZE): NetworkResponse<ServiceDetailResponse>

network/src/commonMain/kotlin/com/wire/kalium/network/api/v0/authenticated/TeamsApiV0.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,12 @@ internal open class TeamsApiV0 internal constructor(
5858
}
5959
}
6060

61-
override suspend fun getTeamMembers(teamId: TeamId, limitTo: Int?, pagingState: String?): NetworkResponse<TeamsApi.TeamMemberList> =
62-
wrapKaliumResponse {
61+
override suspend fun getTeamMembers(
62+
teamId: TeamId,
63+
limitTo: Int?,
64+
pagingState: String?
65+
): NetworkResponse<TeamsApi.TeamMemberListPaginated> =
66+
wrapKaliumResponse<TeamsApi.TeamMemberListPaginated> {
6367
httpClient.get("$PATH_TEAMS/$teamId/$PATH_MEMBERS") {
6468
limitTo?.let { parameter("maxResults", it) }
6569
pagingState?.let { parameter("pagingState", it) }
@@ -69,7 +73,7 @@ internal open class TeamsApiV0 internal constructor(
6973
override suspend fun getTeamMembersByIds(
7074
teamId: TeamId,
7175
teamMemberIdList: TeamsApi.TeamMemberIdList
72-
): NetworkResponse<TeamsApi.TeamMemberList> = wrapKaliumResponse {
76+
): NetworkResponse<TeamsApi.TeamMemberListNonPaginated> = wrapKaliumResponse {
7377
httpClient.post("$PATH_TEAMS/$teamId/$PATH_MEMBERS_BY_IDS") {
7478
setBody(teamMemberIdList)
7579
}

0 commit comments

Comments
 (0)