Discussions Operations

The Discussions namespace provides functionality for managing discussion threads and posts.

Configuration

suspend fun getConfig(): DiscussionConfig?

Retrieves discussion system configuration settings.

Discussion Management

List Discussions

suspend fun getAll(
    filters: DiscussionsFilters? = null,
    disableCache: Boolean? = null
): CursorResponse<List<Discussion>>?

Retrieves paginated list of discussions with optional filtering:

  • discussionIds: Filter by IDs (max 10)
  • label: Filter by label
  • discussionUrl: Filter by URL
  • fromDate/toDate: Date range
  • fromCount/toCount: Posts count range
  • sort: Sort type
  • limit: Results per page
  • skipDeleted: Exclude deleted
  • startAfter: Pagination cursor

Top Discussions

suspend fun getTopDiscussions(
    filters: TopDiscussionsFilters? = null,
    disableCache: Boolean? = null
): CursorResponse<List<Discussion>>?

Retrieves top discussions with filters:

  • contentType: Content type
  • entityIds: Entity IDs
  • fromDate/toDate: Date range
  • limit: Results per page
  • startAfter: Pagination cursor

Get Discussion

suspend fun getById(discussionId: String): SimpleResponse<Discussion>?

Retrieves single discussion by ID.

Posts Management

List Posts

suspend fun getPosts(
    discussionId: String,
    filters: PostsFilters? = null
): DiscussionResponse<List<DiscussionComment>>?

Retrieves posts for discussion with filters:

  • startAfter: Pagination cursor
  • limit: Results per page (default 10)
  • sort: Sort order (oldest/latest/interacted/popular)
  • skipDeleted/skipModerated: Exclude posts

User Posts

// Get current user's posts
suspend fun getOwnPosts(
    filters: PostsFilters? = null
): CursorResponse<List<DiscussionComment>>?

// Get specific user's posts
suspend fun getUserPosts(
    userId: String,
    filters: PostsFilters? = null,
    disableCache: Boolean? = null
): CursorResponse<List<DiscussionComment>>?

Post Operations

// Get single post
suspend fun getPostById(postId: String): SimpleResponse<DiscussionComment>?

// Get post replies
suspend fun getPostReplies(
    postId: String,
    filters: PostsFilters? = null,
    disableCache: Boolean? = null
): DiscussionResponse<List<DiscussionComment>>?

// Create post
suspend fun createPost(
    discussionId: String,
    createPost: CreatePost
): SimpleResponse<DiscussionComment>?

// Update post
suspend fun updatePost(
    postId: String,
    content: String
): SimpleResponse<DiscussionComment>?

// Delete post
suspend fun deletePost(postId: String): Unit?

Engagement

Reactions

suspend fun react(
    postId: String,
    reactionType: ReactionType
): SimpleResponse<DiscussionComment>?

Adds reaction to post.

Moderation

suspend fun reportPost(
    postId: String,
    reason: ReportReasonType,
    reasonDetails: String? = null
): SimpleResponse<DiscussionComment>?

Reports post for moderation.

Statistics

Post Counts

// Get counts for up to 50 discussions
suspend fun getPostsCount(
    discussionIds: List<String>,
    disableCache: Boolean? = null
): SimpleResponse<List<PostsCountPerDiscussion>>?

// Get counts for up to 250 discussions
suspend fun getPostsCountExtended(
    discussionIds: List<String>
): CursorResponse<List<PostsCountPerDiscussion>>?

Note: All operations are suspending functions and must be called from a coroutine scope.