commonMain.chat.bsky.convo.getMessages.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bluesky-jvm Show documentation
Show all versions of bluesky-jvm Show documentation
Bluesky Social API bindings for Kotlin.
The newest version!
@file:Suppress("DEPRECATION")
package chat.bsky.convo
import kotlin.Any
import kotlin.Long
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmInline
import kotlinx.collections.immutable.toImmutableList
import kotlinx.serialization.KSerializer
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import sh.christian.ozone.api.model.ReadOnlyList
import sh.christian.ozone.api.runtime.valueClassSerializer
@Serializable
public sealed interface GetMessagesResponseMessageUnion {
public class MessageViewSerializer : KSerializer by valueClassSerializer(
serialName = "chat.bsky.convo.defs#messageView",
constructor = ::MessageView,
valueProvider = MessageView::value,
valueSerializerProvider = { chat.bsky.convo.MessageView.serializer() },
)
@Serializable(with = MessageViewSerializer::class)
@JvmInline
@SerialName("chat.bsky.convo.defs#messageView")
public value class MessageView(
public val `value`: chat.bsky.convo.MessageView,
) : GetMessagesResponseMessageUnion
public class DeletedMessageViewSerializer : KSerializer by valueClassSerializer(
serialName = "chat.bsky.convo.defs#deletedMessageView",
constructor = ::DeletedMessageView,
valueProvider = DeletedMessageView::value,
valueSerializerProvider = { chat.bsky.convo.DeletedMessageView.serializer() },
)
@Serializable(with = DeletedMessageViewSerializer::class)
@JvmInline
@SerialName("chat.bsky.convo.defs#deletedMessageView")
public value class DeletedMessageView(
public val `value`: chat.bsky.convo.DeletedMessageView,
) : GetMessagesResponseMessageUnion
}
@Serializable
public data class GetMessagesQueryParams(
public val convoId: String,
public val limit: Long? = 50,
public val cursor: String? = null,
) {
init {
require(limit == null || limit >= 1) {
"limit must be >= 1, but was $limit"
}
require(limit == null || limit <= 100) {
"limit must be <= 100, but was $limit"
}
}
public fun asList(): ReadOnlyList> = buildList {
add("convoId" to convoId)
add("limit" to limit)
add("cursor" to cursor)
}.toImmutableList()
}
@Serializable
public data class GetMessagesResponse(
public val cursor: String? = null,
public val messages: ReadOnlyList,
)