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 @@ -37,7 +37,6 @@ import io.getstream.chat.android.client.api2.model.dto.DownstreamModerationDetai
import io.getstream.chat.android.client.api2.model.dto.DownstreamModerationDto
import io.getstream.chat.android.client.api2.model.dto.DownstreamMuteDto
import io.getstream.chat.android.client.api2.model.dto.DownstreamPendingMessageDto
import io.getstream.chat.android.client.api2.model.dto.DownstreamPollDto
import io.getstream.chat.android.client.api2.model.dto.DownstreamPushPreferenceDto
import io.getstream.chat.android.client.api2.model.dto.DownstreamReactionDto
import io.getstream.chat.android.client.api2.model.dto.DownstreamReactionGroupDto
Expand All @@ -48,7 +47,6 @@ import io.getstream.chat.android.client.api2.model.dto.DownstreamThreadInfoDto
import io.getstream.chat.android.client.api2.model.dto.DownstreamUserDto
import io.getstream.chat.android.client.api2.model.dto.DownstreamUserGroupDto
import io.getstream.chat.android.client.api2.model.dto.DownstreamUserGroupMemberDto
import io.getstream.chat.android.client.api2.model.dto.DownstreamVoteDto
import io.getstream.chat.android.client.api2.model.dto.PrivacySettingsDto
import io.getstream.chat.android.client.api2.model.dto.ReadReceiptsDto
import io.getstream.chat.android.client.api2.model.dto.SearchWarningDto
Expand Down Expand Up @@ -643,54 +641,6 @@ internal class DomainMapping(
endAt = end_at,
)

/**
* Transforms DownstreamPollDto to Poll
*
* @return Poll
*/
internal fun DownstreamPollDto.toDomain(): Poll {
val ownUserId = currentUserIdProvider() ?: own_votes.firstOrNull()?.user?.id
val votes = latest_votes_by_option
?.values
?.flatten()
?.filter { it.isAnswer != true }
?.map { it.toDomain() } ?: emptyList()
val ownVotes = (
own_votes
.filter { it.isAnswer != true }
.map { it.toDomain() } +
votes.filter { it.user?.id == ownUserId }
)
.associateBy { it.id }
.values
.toList()

val answers = latest_answers?.map { it.toAnswerDomain() } ?: emptyList()

return Poll(
id = id,
name = name,
description = description,
options = options.map { it.toOption() },
votingVisibility = voting_visibility.toVotingVisibility(),
enforceUniqueVote = enforce_unique_vote,
maxVotesAllowed = max_votes_allowed,
allowUserSuggestedOptions = allow_user_suggested_options,
allowAnswers = allow_answers,
voteCount = vote_count,
voteCountsByOption = vote_counts_by_option ?: emptyMap(),
votes = votes,
ownVotes = ownVotes,
createdAt = created_at,
updatedAt = updated_at,
closed = is_closed ?: false,
answersCount = answers_count,
answers = answers,
createdBy = created_by?.toDomain(),
extraData = extraData ?: emptyMap(),
)
}

/**
* Transforms [PollResponseData] into [Poll]
*/
Expand Down Expand Up @@ -794,34 +744,6 @@ internal class DomainMapping(
extraData = custom.mapNotNull { (key, value) -> value?.let { key to it } }.toMap(),
)

/**
* Transforms DownstreamVoteDto to Vote
*
* @return Vote
*/
internal fun DownstreamVoteDto.toDomain(): Vote = Vote(
id = id,
pollId = poll_id,
optionId = option_id,
createdAt = created_at,
updatedAt = updated_at,
user = user?.toDomain(),
)

/**
* Transforms DownstreamVoteDto to Answer
*
* @return Answer
*/
internal fun DownstreamVoteDto.toAnswerDomain(): Answer = Answer(
id = id,
pollId = poll_id,
text = answer_text ?: "",
createdAt = created_at,
updatedAt = updated_at,
user = user?.toDomain(),
)

/**
* Transforms String to VotingVisibility
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@

import com.squareup.moshi.JsonClass
import io.getstream.chat.android.client.api2.model.dto.utils.internal.ExactDate
import io.getstream.chat.android.network.models.PollResponseData
import io.getstream.chat.android.network.models.PollVoteResponseData
import io.getstream.result.Error
import java.util.Date

Expand Down Expand Up @@ -541,7 +543,7 @@
val cid: String,
val message_id: String?,
val created_at: ExactDate,
val poll: DownstreamPollDto,
val poll: PollResponseData,
) : ChatEventDto()

@JsonClass(generateAdapter = true)
Expand All @@ -550,7 +552,7 @@
val cid: String,
val message_id: String?,
val created_at: ExactDate,
val poll: DownstreamPollDto,
val poll: PollResponseData,
) : ChatEventDto()

@JsonClass(generateAdapter = true)
Expand All @@ -559,7 +561,7 @@
val cid: String,
val message_id: String?,
val created_at: ExactDate,
val poll: DownstreamPollDto,
val poll: PollResponseData,
) : ChatEventDto()

@JsonClass(generateAdapter = true)
Expand All @@ -568,8 +570,8 @@
val cid: String,
val message_id: String?,
val created_at: ExactDate,
val poll: DownstreamPollDto,
val poll_vote: DownstreamVoteDto,
val poll: PollResponseData,
val poll_vote: PollVoteResponseData,

Check warning on line 574 in stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/model/dto/EventDtos.kt

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Rename this parameter to match the regular expression ^`?[_a-z][a-zA-Z0-9]*`?$

See more on https://sonarcloud.io/project/issues?id=GetStream_stream-chat-android&issues=AaCG9OKfyCUeZ_SLCT86&open=AaCG9OKfyCUeZ_SLCT86&pullRequest=6689
) : ChatEventDto()

@JsonClass(generateAdapter = true)
Expand All @@ -578,8 +580,8 @@
val cid: String,
val message_id: String?,
val created_at: ExactDate,
val poll: DownstreamPollDto,
val poll_vote: DownstreamVoteDto,
val poll: PollResponseData,
val poll_vote: PollVoteResponseData,

Check warning on line 584 in stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/model/dto/EventDtos.kt

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Rename this parameter to match the regular expression ^`?[_a-z][a-zA-Z0-9]*`?$

See more on https://sonarcloud.io/project/issues?id=GetStream_stream-chat-android&issues=AaCG9OKfyCUeZ_SLCT87&open=AaCG9OKfyCUeZ_SLCT87&pullRequest=6689
) : ChatEventDto()

@JsonClass(generateAdapter = true)
Expand All @@ -588,8 +590,8 @@
val cid: String,
val message_id: String?,
val created_at: ExactDate,
val poll: DownstreamPollDto,
val poll_vote: DownstreamVoteDto,
val poll: PollResponseData,
val poll_vote: PollVoteResponseData,

Check warning on line 594 in stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/model/dto/EventDtos.kt

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Rename this parameter to match the regular expression ^`?[_a-z][a-zA-Z0-9]*`?$

See more on https://sonarcloud.io/project/issues?id=GetStream_stream-chat-android&issues=AaCG9OKfyCUeZ_SLCT88&open=AaCG9OKfyCUeZ_SLCT88&pullRequest=6689
) : ChatEventDto()

@JsonClass(generateAdapter = true)
Expand All @@ -598,8 +600,8 @@
val cid: String,
val message_id: String?,
val created_at: ExactDate,
val poll: DownstreamPollDto,
val poll_vote: DownstreamVoteDto,
val poll: PollResponseData,
val poll_vote: PollVoteResponseData,

Check warning on line 604 in stream-chat-android-client/src/main/java/io/getstream/chat/android/client/api2/model/dto/EventDtos.kt

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Rename this parameter to match the regular expression ^`?[_a-z][a-zA-Z0-9]*`?$

See more on https://sonarcloud.io/project/issues?id=GetStream_stream-chat-android&issues=AaCG9OKfyCUeZ_SLCT89&open=AaCG9OKfyCUeZ_SLCT89&pullRequest=6689
) : ChatEventDto()

@JsonClass(generateAdapter = true)
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ import io.getstream.chat.android.client.parser2.adapters.DownstreamMemberDtoAdap
import io.getstream.chat.android.client.parser2.adapters.DownstreamMemberInfoDtoAdapter
import io.getstream.chat.android.client.parser2.adapters.DownstreamMessageDtoAdapter
import io.getstream.chat.android.client.parser2.adapters.DownstreamModerationDetailsDtoAdapter
import io.getstream.chat.android.client.parser2.adapters.DownstreamPollDtoAdapter
import io.getstream.chat.android.client.parser2.adapters.DownstreamReactionDtoAdapter
import io.getstream.chat.android.client.parser2.adapters.DownstreamThreadDtoAdapter
import io.getstream.chat.android.client.parser2.adapters.DownstreamThreadInfoDtoAdapter
Expand Down Expand Up @@ -117,7 +116,6 @@ internal class MoshiChatParser(
.add(FlagRequestAdapterFactory)
.add(DownstreamThreadDtoAdapter)
.add(DownstreamThreadInfoDtoAdapter)
.add(DownstreamPollDtoAdapter)
.add(CreatePollRequestAdapter)
.add(UpdatePollRequestAdapter)
.add(CreatePollOptionRequestAdapter)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,31 +21,13 @@ import com.squareup.moshi.JsonAdapter
import com.squareup.moshi.JsonReader
import com.squareup.moshi.JsonWriter
import com.squareup.moshi.ToJson
import io.getstream.chat.android.client.api2.model.dto.DownstreamPollDto
import io.getstream.chat.android.network.models.CreatePollOptionRequest
import io.getstream.chat.android.network.models.CreatePollRequest
import io.getstream.chat.android.network.models.PollOptionInput
import io.getstream.chat.android.network.models.PollOptionRequest
import io.getstream.chat.android.network.models.UpdatePollOptionRequest
import io.getstream.chat.android.network.models.UpdatePollRequest

/**
* Deserializer for [DownstreamPollDto] that handles the [io.getstream.chat.android.client.api2.model.dto.ExtraDataDto]
* implementation.
*/
internal object DownstreamPollDtoAdapter : CustomObjectDtoAdapter<DownstreamPollDto>(DownstreamPollDto::class) {

@FromJson
fun fromJson(
jsonReader: JsonReader,
mapAdapter: JsonAdapter<MutableMap<String, Any>>,
pollAdapter: JsonAdapter<DownstreamPollDto>,
): DownstreamPollDto? = parseWithExtraData(jsonReader, mapAdapter, pollAdapter)

@ToJson
fun toJson(jsonWriter: JsonWriter, value: DownstreamPollDto): Unit = error("Can't convert this to Json")
}

// The generated poll write-request models carry custom data in a `custom` field that must be
// flattened to the JSON root on the wire; extraDataPropertyName matches their @Json(name = "custom").

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -879,7 +879,7 @@ private fun createMessageAttachmentJsonString() =
""".trimIndent()

@Language("JSON")
private fun createReactionUserJsonString() =
private fun createNestedUserJsonString() =
"""
{
"id": "bender",
Expand All @@ -902,7 +902,7 @@ private fun createMessageReactionJsonString() =
"message_id": "09afcd85-9dbb-4da8-8d85-5a6b4268d755",
"type": "like",
"score": 1,
"user": ${createReactionUserJsonString()},
"user": ${createNestedUserJsonString()},
"user_id": "bender",
"created_at": "2020-06-29T06:14:28.000Z",
"updated_at": "2020-06-29T06:14:28.000Z"
Expand Down Expand Up @@ -1033,7 +1033,7 @@ private fun createPollJsonString() =
"is_closed": false,
"answers_count": 0,
"latest_answers": [],
"created_by": ${createUserJsonString()},
"created_by": ${createNestedUserJsonString()},
"created_by_id": "bender"
}
""".trimIndent()
Expand All @@ -1047,7 +1047,7 @@ private fun createPollVoteJsonString() =
"option_id": "option-1",
"created_at": "2020-06-29T06:14:28.000Z",
"updated_at": "2020-06-29T06:14:28.000Z",
"user": ${createUserJsonString()},
"user": ${createNestedUserJsonString()},
"user_id": "bender"
}
""".trimIndent()
Expand All @@ -1061,7 +1061,7 @@ private fun createPollAnswerVoteJsonString() =
"option_id": "",
"created_at": "2020-06-29T06:14:28.000Z",
"updated_at": "2020-06-29T06:14:28.000Z",
"user": ${createUserJsonString()},
"user": ${createNestedUserJsonString()},
"user_id": "bender",
"is_answer": true,
"answer_text": "My answer"
Expand Down
Loading
Loading