# Posts (*posts*) ## Overview ### Available Operations * [createTopicPostPM](#createtopicpostpm) - Creates a new topic, a new post, or a private message * [deletePost](#deletepost) - delete a single post * [getPost](#getpost) - Retrieve a single post * [listPosts](#listposts) - List latest posts across topics * [lockPost](#lockpost) - Lock a post from being edited * [performPostAction](#performpostaction) - Like a post and other actions * [postReplies](#postreplies) - List replies to a post * [updatePost](#updatepost) - Update a single post ## createTopicPostPM Creates a new topic, a new post, or a private message ### Example Usage ```typescript import { SDK } from "@lukehagar/discoursejs"; const sdk = new SDK(); async function run() { const result = await sdk.posts.createTopicPostPM({ archetype: "private_message", raw: "", targetRecipients: "blake,sam", }); // Handle the result console.log(result) } run(); ``` ### Standalone function The standalone function version of this method: ```typescript import { SDKCore } from "@lukehagar/discoursejs/core.js"; import { postsCreateTopicPostPM } from "@lukehagar/discoursejs/funcs/postsCreateTopicPostPM.js"; // Use `SDKCore` for best tree-shaking performance. // You can create one instance of it to use across an application. const sdk = new SDKCore(); async function run() { const res = await postsCreateTopicPostPM(sdk, { archetype: "private_message", raw: "", targetRecipients: "blake,sam", }); if (!res.ok) { throw res.error; } const { value: result } = res; // Handle the result console.log(result) } run(); ``` ### Parameters | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `request` | [operations.CreateTopicPostPMRequestBody](../../sdk/models/operations/createtopicpostpmrequestbody.md) | :heavy_check_mark: | The request object to use for the request. | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response **Promise\<[operations.CreateTopicPostPMResponseBody](../../sdk/models/operations/createtopicpostpmresponsebody.md)\>** ### Errors | Error Object | Status Code | Content Type | | --------------- | --------------- | --------------- | | errors.SDKError | 4xx-5xx | */* | ## deletePost delete a single post ### Example Usage ```typescript import { SDK } from "@lukehagar/discoursejs"; const sdk = new SDK(); async function run() { await sdk.posts.deletePost(188146, { forceDestroy: true, }); } run(); ``` ### Standalone function The standalone function version of this method: ```typescript import { SDKCore } from "@lukehagar/discoursejs/core.js"; import { postsDeletePost } from "@lukehagar/discoursejs/funcs/postsDeletePost.js"; // Use `SDKCore` for best tree-shaking performance. // You can create one instance of it to use across an application. const sdk = new SDKCore(); async function run() { const res = await postsDeletePost(sdk, 928159, { forceDestroy: true, }); if (!res.ok) { throw res.error; } const { value: result } = res; } run(); ``` ### Parameters | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `id` | *number* | :heavy_check_mark: | N/A | | `requestBody` | [operations.DeletePostRequestBody](../../sdk/models/operations/deletepostrequestbody.md) | :heavy_minus_sign: | N/A | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response **Promise\** ### Errors | Error Object | Status Code | Content Type | | --------------- | --------------- | --------------- | | errors.SDKError | 4xx-5xx | */* | ## getPost This endpoint can be used to get the number of likes on a post using the `actions_summary` property in the response. `actions_summary` responses with the id of `2` signify a `like`. If there are no `actions_summary` items with the id of `2`, that means there are 0 likes. Other ids likely refer to various different flag types. ### Example Usage ```typescript import { SDK } from "@lukehagar/discoursejs"; const sdk = new SDK(); async function run() { const result = await sdk.posts.getPost(""); // Handle the result console.log(result) } run(); ``` ### Standalone function The standalone function version of this method: ```typescript import { SDKCore } from "@lukehagar/discoursejs/core.js"; import { postsGetPost } from "@lukehagar/discoursejs/funcs/postsGetPost.js"; // Use `SDKCore` for best tree-shaking performance. // You can create one instance of it to use across an application. const sdk = new SDKCore(); async function run() { const res = await postsGetPost(sdk, ""); if (!res.ok) { throw res.error; } const { value: result } = res; // Handle the result console.log(result) } run(); ``` ### Parameters | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `id` | *string* | :heavy_check_mark: | N/A | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response **Promise\<[operations.GetPostResponseBody](../../sdk/models/operations/getpostresponsebody.md)\>** ### Errors | Error Object | Status Code | Content Type | | --------------- | --------------- | --------------- | | errors.SDKError | 4xx-5xx | */* | ## listPosts List latest posts across topics ### Example Usage ```typescript import { SDK } from "@lukehagar/discoursejs"; const sdk = new SDK(); async function run() { const result = await sdk.posts.listPosts("", ""); // Handle the result console.log(result) } run(); ``` ### Standalone function The standalone function version of this method: ```typescript import { SDKCore } from "@lukehagar/discoursejs/core.js"; import { postsListPosts } from "@lukehagar/discoursejs/funcs/postsListPosts.js"; // Use `SDKCore` for best tree-shaking performance. // You can create one instance of it to use across an application. const sdk = new SDKCore(); async function run() { const res = await postsListPosts(sdk, "", ""); if (!res.ok) { throw res.error; } const { value: result } = res; // Handle the result console.log(result) } run(); ``` ### Parameters | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `apiKey` | *string* | :heavy_check_mark: | N/A | | `apiUsername` | *string* | :heavy_check_mark: | N/A | | `before` | *string* | :heavy_minus_sign: | Load posts with an id lower than this value. Useful for pagination. | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response **Promise\<[operations.ListPostsResponseBody](../../sdk/models/operations/listpostsresponsebody.md)\>** ### Errors | Error Object | Status Code | Content Type | | --------------- | --------------- | --------------- | | errors.SDKError | 4xx-5xx | */* | ## lockPost Lock a post from being edited ### Example Usage ```typescript import { SDK } from "@lukehagar/discoursejs"; const sdk = new SDK(); async function run() { const result = await sdk.posts.lockPost("", "", ""); // Handle the result console.log(result) } run(); ``` ### Standalone function The standalone function version of this method: ```typescript import { SDKCore } from "@lukehagar/discoursejs/core.js"; import { postsLockPost } from "@lukehagar/discoursejs/funcs/postsLockPost.js"; // Use `SDKCore` for best tree-shaking performance. // You can create one instance of it to use across an application. const sdk = new SDKCore(); async function run() { const res = await postsLockPost(sdk, "", "", ""); if (!res.ok) { throw res.error; } const { value: result } = res; // Handle the result console.log(result) } run(); ``` ### Parameters | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `apiKey` | *string* | :heavy_check_mark: | N/A | | `apiUsername` | *string* | :heavy_check_mark: | N/A | | `id` | *string* | :heavy_check_mark: | N/A | | `requestBody` | [operations.LockPostRequestBody](../../sdk/models/operations/lockpostrequestbody.md) | :heavy_minus_sign: | N/A | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response **Promise\<[operations.LockPostResponseBody](../../sdk/models/operations/lockpostresponsebody.md)\>** ### Errors | Error Object | Status Code | Content Type | | --------------- | --------------- | --------------- | | errors.SDKError | 4xx-5xx | */* | ## performPostAction Like a post and other actions ### Example Usage ```typescript import { SDK } from "@lukehagar/discoursejs"; const sdk = new SDK(); async function run() { const result = await sdk.posts.performPostAction("", ""); // Handle the result console.log(result) } run(); ``` ### Standalone function The standalone function version of this method: ```typescript import { SDKCore } from "@lukehagar/discoursejs/core.js"; import { postsPerformPostAction } from "@lukehagar/discoursejs/funcs/postsPerformPostAction.js"; // Use `SDKCore` for best tree-shaking performance. // You can create one instance of it to use across an application. const sdk = new SDKCore(); async function run() { const res = await postsPerformPostAction(sdk, "", ""); if (!res.ok) { throw res.error; } const { value: result } = res; // Handle the result console.log(result) } run(); ``` ### Parameters | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `apiKey` | *string* | :heavy_check_mark: | N/A | | `apiUsername` | *string* | :heavy_check_mark: | N/A | | `requestBody` | [operations.PerformPostActionRequestBody](../../sdk/models/operations/performpostactionrequestbody.md) | :heavy_minus_sign: | N/A | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response **Promise\<[operations.PerformPostActionResponseBody](../../sdk/models/operations/performpostactionresponsebody.md)\>** ### Errors | Error Object | Status Code | Content Type | | --------------- | --------------- | --------------- | | errors.SDKError | 4xx-5xx | */* | ## postReplies List replies to a post ### Example Usage ```typescript import { SDK } from "@lukehagar/discoursejs"; const sdk = new SDK(); async function run() { const result = await sdk.posts.postReplies(""); // Handle the result console.log(result) } run(); ``` ### Standalone function The standalone function version of this method: ```typescript import { SDKCore } from "@lukehagar/discoursejs/core.js"; import { postsPostReplies } from "@lukehagar/discoursejs/funcs/postsPostReplies.js"; // Use `SDKCore` for best tree-shaking performance. // You can create one instance of it to use across an application. const sdk = new SDKCore(); async function run() { const res = await postsPostReplies(sdk, ""); if (!res.ok) { throw res.error; } const { value: result } = res; // Handle the result console.log(result) } run(); ``` ### Parameters | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `id` | *string* | :heavy_check_mark: | N/A | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response **Promise\<[operations.PostRepliesResponseBody[]](../../models/.md)\>** ### Errors | Error Object | Status Code | Content Type | | --------------- | --------------- | --------------- | | errors.SDKError | 4xx-5xx | */* | ## updatePost Update a single post ### Example Usage ```typescript import { SDK } from "@lukehagar/discoursejs"; const sdk = new SDK(); async function run() { const result = await sdk.posts.updatePost(""); // Handle the result console.log(result) } run(); ``` ### Standalone function The standalone function version of this method: ```typescript import { SDKCore } from "@lukehagar/discoursejs/core.js"; import { postsUpdatePost } from "@lukehagar/discoursejs/funcs/postsUpdatePost.js"; // Use `SDKCore` for best tree-shaking performance. // You can create one instance of it to use across an application. const sdk = new SDKCore(); async function run() { const res = await postsUpdatePost(sdk, ""); if (!res.ok) { throw res.error; } const { value: result } = res; // Handle the result console.log(result) } run(); ``` ### Parameters | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `id` | *string* | :heavy_check_mark: | N/A | | `requestBody` | [operations.UpdatePostRequestBody](../../sdk/models/operations/updatepostrequestbody.md) | :heavy_minus_sign: | N/A | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response **Promise\<[operations.UpdatePostResponseBody](../../sdk/models/operations/updatepostresponsebody.md)\>** ### Errors | Error Object | Status Code | Content Type | | --------------- | --------------- | --------------- | | errors.SDKError | 4xx-5xx | */* |