commonMain.app.bsky.feed.getPostThread.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 app.bsky.feed
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.AtUri
import sh.christian.ozone.api.model.ReadOnlyList
import sh.christian.ozone.api.runtime.valueClassSerializer
@Serializable
public sealed interface GetPostThreadResponseThreadUnion {
public class ThreadViewPostSerializer : KSerializer by valueClassSerializer(
serialName = "app.bsky.feed.defs#threadViewPost",
constructor = ::ThreadViewPost,
valueProvider = ThreadViewPost::value,
valueSerializerProvider = { app.bsky.feed.ThreadViewPost.serializer() },
)
@Serializable(with = ThreadViewPostSerializer::class)
@JvmInline
@SerialName("app.bsky.feed.defs#threadViewPost")
public value class ThreadViewPost(
public val `value`: app.bsky.feed.ThreadViewPost,
) : GetPostThreadResponseThreadUnion
public class NotFoundPostSerializer : KSerializer by valueClassSerializer(
serialName = "app.bsky.feed.defs#notFoundPost",
constructor = ::NotFoundPost,
valueProvider = NotFoundPost::value,
valueSerializerProvider = { app.bsky.feed.NotFoundPost.serializer() },
)
@Serializable(with = NotFoundPostSerializer::class)
@JvmInline
@SerialName("app.bsky.feed.defs#notFoundPost")
public value class NotFoundPost(
public val `value`: app.bsky.feed.NotFoundPost,
) : GetPostThreadResponseThreadUnion
public class BlockedPostSerializer : KSerializer by valueClassSerializer(
serialName = "app.bsky.feed.defs#blockedPost",
constructor = ::BlockedPost,
valueProvider = BlockedPost::value,
valueSerializerProvider = { app.bsky.feed.BlockedPost.serializer() },
)
@Serializable(with = BlockedPostSerializer::class)
@JvmInline
@SerialName("app.bsky.feed.defs#blockedPost")
public value class BlockedPost(
public val `value`: app.bsky.feed.BlockedPost,
) : GetPostThreadResponseThreadUnion
}
/**
* @param uri Reference (AT-URI) to post record.
* @param depth How many levels of reply depth should be included in response.
* @param parentHeight How many levels of parent (and grandparent, etc) post to include.
*/
@Serializable
public data class GetPostThreadQueryParams(
/**
* Reference (AT-URI) to post record.
*/
public val uri: AtUri,
/**
* How many levels of reply depth should be included in response.
*/
public val depth: Long? = 6,
/**
* How many levels of parent (and grandparent, etc) post to include.
*/
public val parentHeight: Long? = 80,
) {
init {
require(depth == null || depth >= 0) {
"depth must be >= 0, but was $depth"
}
require(depth == null || depth <= 1_000) {
"depth must be <= 1_000, but was $depth"
}
require(parentHeight == null || parentHeight >= 0) {
"parentHeight must be >= 0, but was $parentHeight"
}
require(parentHeight == null || parentHeight <= 1_000) {
"parentHeight must be <= 1_000, but was $parentHeight"
}
}
public fun asList(): ReadOnlyList> = buildList {
add("uri" to uri)
add("depth" to depth)
add("parentHeight" to parentHeight)
}.toImmutableList()
}
@Serializable
public data class GetPostThreadResponse(
public val thread: GetPostThreadResponseThreadUnion,
public val threadgate: ThreadgateView? = null,
)