Skip to content
Open
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 @@ -987,7 +987,7 @@ internal class DomainMapping(
internal fun ChannelPushPreferencesResponse.toDomain(): PushPreference = PushPreference(
level = PushPreferenceLevel.fromValue(chatLevel),
disabledUntil = disabledUntil,
chatPreferences = null,
chatPreferences = chatPreferences?.toDomain(),
)

internal fun ChatPreferencesResponse.toDomain(): ChatPreferences = ChatPreferences(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,14 @@ import com.squareup.moshi.Json
/**
*
*/

@com.squareup.moshi.JsonClass(generateAdapter = true)
internal data class ChannelPushPreferencesResponse(
@Json(name = "chat_level")
val chatLevel: kotlin.String? = null,
internal val chatLevel: String? = null,

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

@Json(name = "chat_preferences")
internal val chatPreferences: io.getstream.chat.android.network.models.ChatPreferencesResponse? = null,
)
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ import io.getstream.chat.android.models.ChannelInfo
import io.getstream.chat.android.models.ChannelMute
import io.getstream.chat.android.models.ChannelTransformer
import io.getstream.chat.android.models.ChannelUserRead
import io.getstream.chat.android.models.ChatPreferenceToggle
import io.getstream.chat.android.models.Command
import io.getstream.chat.android.models.Config
import io.getstream.chat.android.models.Device
Expand All @@ -102,6 +103,7 @@ import io.getstream.chat.android.models.NoOpUserTransformer
import io.getstream.chat.android.models.Option
import io.getstream.chat.android.models.PendingMessage
import io.getstream.chat.android.models.Poll
import io.getstream.chat.android.models.PushPreferenceLevel
import io.getstream.chat.android.models.PushProvider
import io.getstream.chat.android.models.QueryPollVotesResult
import io.getstream.chat.android.models.QueryPollsResult
Expand All @@ -127,6 +129,8 @@ import io.getstream.chat.android.models.VotingVisibility
import io.getstream.chat.android.models.querysort.QuerySortByField.Companion.ascByName
import io.getstream.chat.android.models.querysort.QuerySortByField.Companion.descByName
import io.getstream.chat.android.models.querysort.QuerySorter
import io.getstream.chat.android.network.models.ChannelPushPreferencesResponse
import io.getstream.chat.android.network.models.ChatPreferencesResponse
import io.getstream.chat.android.network.models.UserResponse
import io.getstream.chat.android.randomBoolean
import io.getstream.chat.android.randomChannel
Expand All @@ -137,6 +141,7 @@ import io.getstream.chat.android.randomString
import io.getstream.chat.android.randomUser
import org.amshove.kluent.shouldBeEqualTo
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Assertions.assertNull
import org.junit.jupiter.api.Assertions.assertTrue
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.assertThrows
Expand Down Expand Up @@ -1298,6 +1303,33 @@ internal class DomainMappingTest {
)
}

@Test
fun `Channel push preferences keep their chat preferences`() {
val sut = Fixture().get()

val result = with(sut) {
ChannelPushPreferencesResponse(
chatLevel = "all",
chatPreferences = ChatPreferencesResponse(directMentions = "all", threadReplies = "none"),
).toDomain()
}

assertEquals(PushPreferenceLevel.all, result.level)
assertEquals(ChatPreferenceToggle.all, result.chatPreferences?.directMentions)
assertEquals(ChatPreferenceToggle.none, result.chatPreferences?.threadReplies)
}

@Test
fun `Channel push preferences without chat preferences map to null`() {
val sut = Fixture().get()

val result = with(sut) {
ChannelPushPreferencesResponse(chatLevel = "all").toDomain()
}

assertNull(result.chatPreferences)
}

internal class Fixture {
private var currentUserIdProvider: () -> UserId? = { randomString() }
private var channelTransformer: ChannelTransformer = NoOpChannelTransformer
Expand Down
Loading