Discussions Operations
Create Post
do {
let createPost = CreatePost(
content: "This is my comment on the match!",
parentId: nil, // nil for top-level post, set for replies
mentions: nil
)
let response = try await sdk.discussions().createPost(
discussionId: "discussion123",
createPost: createPost
)
if let comment = response.data {
print("Post created: \(comment.id)")
}
} catch {
print("Error creating post: \(error)")
}
Get Discussion Posts
do {
let filters = PostsFilters(
startAfter: nil,
limit: 20,
sort: PostsSortTypes.latest,
skipDeleted: true,
skipModerated: true
)
let posts = try await sdk.discussions().getPosts(
discussionId: "discussion123",
filters: filters,
disableCache: false
)
if let postArray = posts.data {
print("Found \(postArray.count) posts")
}
} catch {
print("Error fetching posts: \(error)")
}
Update Post
do {
let updatePost = UpdatePost(
content: "Updated comment content"
)
try await sdk.discussions().updatePost(
postId: "post123",
updatePost: updatePost
)
print("Post updated successfully")
} catch {
print("Error updating post: \(error)")
}
Delete Post
do {
try await sdk.discussions().deletePost(postId: "post123")
print("Post deleted successfully")
} catch {
print("Error deleting post: \(error)")
}
React to Post
do {
let reaction = ReactToPost(
reactionType: ReactionType.like
)
try await sdk.discussions().reactToPost(
postId: "post123",
reactToPost: reaction
)
print("Reaction added to post")
} catch {
print("Error reacting to post: \(error)")
}
Report Post
do {
let report = ReportPost(
reason: ReportReasonType.spam,
description: "This post contains spam content"
)
try await sdk.discussions().reportPost(
postId: "post123",
reportPost: report
)
print("Post reported successfully")
} catch {
print("Error reporting post: \(error)")
}
Get Discussions
do {
let filters = DiscussionsFilters(
type: DiscussionType.match,
status: DiscussionStatus.active,
limit: 10,
cursor: nil
)
let discussions = try await sdk.discussions().getDiscussions(
filters: filters,
disableCache: false
)
if let discussionArray = discussions.data {
print("Found \(discussionArray.count) discussions")
}
} catch {
print("Error fetching discussions: \(error)")
}
Get Top Discussions
do {
let filters = TopDiscussionsFilters(
entityType: TopDiscussionEntityType.match,
limit: 5
)
let topDiscussions = try await sdk.discussions().getTopDiscussions(
filters: filters,
disableCache: false
)
print("Top discussions fetched")
} catch {
print("Error fetching top discussions: \(error)")
}
Get Discussion by ID
do {
let discussion = try await sdk.discussions().getById(discussionId: "discussion123")
if let discussionData = discussion.data {
print("Discussion: \(discussionData.title)")
}
} catch {
print("Error fetching discussion: \(error)")
}
Get Own Posts
do {
let filters = PostsFilters(
startAfter: nil,
limit: 20,
sort: PostsSortTypes.latest,
skipDeleted: true,
skipModerated: true
)
let posts = try await sdk.discussions().getOwnPosts(filters: filters)
if let postArray = posts.data {
print("Own posts: \(postArray.count)")
}
} catch {
print("Error fetching own posts: \(error)")
}
Get Post by ID
do {
let post = try await sdk.discussions().getPostById(postId: "post123")
if let postData = post.data {
print("Post: \(postData.content)")
}
} catch {
print("Error fetching post: \(error)")
}
Get Post Replies
do {
let filters = PostsFilters(
startAfter: nil,
limit: 10,
sort: PostsSortTypes.oldest,
skipDeleted: true,
skipModerated: true
)
let replies = try await sdk.discussions().getPostReplies(
postId: "post123",
filters: filters,
disableCache: false
)
if let replyArray = replies.data {
print("Post replies: \(replyArray.count)")
}
} catch {
print("Error fetching post replies: \(error)")
}
Get Posts Count
do {
let discussionIds = ["discussion1", "discussion2", "discussion3"]
let counts = try await sdk.discussions().getPostsCount(
discussionIds: discussionIds,
disableCache: false
)
if let countArray = counts.data {
print("Posts count for \(countArray.count) discussions")
}
} catch {
print("Error fetching posts count: \(error)")
}
Get Posts Count Extended
do {
let discussionIds = ["discussion1", "discussion2", "discussion3"]
let counts = try await sdk.discussions().getPostsCountExtended(discussionIds: discussionIds)
if let countArray = counts.data {
print("Extended posts count for \(countArray.count) discussions")
}
} catch {
print("Error fetching extended posts count: \(error)")
}
Get User Posts
do {
let filters = PostsFilters(
startAfter: nil,
limit: 20,
sort: PostsSortTypes.latest,
skipDeleted: true,
skipModerated: true
)
let posts = try await sdk.discussions().getUserPosts(
userId: "user123",
filters: filters,
disableCache: false
)
if let postArray = posts.data {
print("User posts: \(postArray.count)")
}
} catch {
print("Error fetching user posts: \(error)")
}
Get Discussion Config
do {
let config = try await sdk.discussions().getConfig()
print("Discussion config loaded")
} catch {
print("Error fetching discussion config: \(error)")
}
Updated about 21 hours ago