import type { ApiClient } from "@promobase/sdk-runtime"; import type { ThreadsPost } from "./types.ts"; export function createReplies(client: ApiClient) { return { async list(postId: string, opts?: { limit?: number; after?: string; reverse?: boolean }) { const params: Record = {}; if (opts?.limit) params.limit = opts.limit; if (opts?.after) params.after = opts.after; if (opts?.reverse !== undefined) params.reverse = opts.reverse; return client.getEdge(`${postId}/replies`, { fields: ["id", "text", "username", "timestamp", "media_type", "permalink", "hide_status"], params, }); }, async getConversation( postId: string, opts?: { limit?: number; after?: string; reverse?: boolean }, ) { const params: Record = {}; if (opts?.limit) params.limit = opts.limit; if (opts?.after) params.after = opts.after; if (opts?.reverse !== undefined) params.reverse = opts.reverse; return client.getEdge(`${postId}/conversation`, { fields: ["id", "text", "username", "timestamp", "media_type", "permalink", "hide_status"], params, }); }, /** Hide or unhide a reply. */ async hide(replyId: string, hidden: boolean = true): Promise { await client.post(`${replyId}/manage_reply`, { hide: hidden }); }, }; }