---
id: post
title: Post
sidebar_label: Post
---

## Post

The `Post` class provides static methods for interacting with posts and related data on the Comty platform.

### API Reference

**Class Overview:**

The `Post` class offers a comprehensive set of methods for retrieving, creating, updating, deleting, liking, saving, and voting on posts. It also provides functionalities for retrieving trending hashtags and posts.

### Static Properties

*   `maxPostTextLength`: *number* The maximum length allowed for the post text (3200).
*   `maxCommentLength`: *number* The maximum length allowed for a comment (1200).

### Static Methods

*   `getPostingPolicy()`
    *   Retrieves the posting policy from the server.
    *   Returns: *Promise[object]* The posting policy data.

*   `post(options)`
    *   Retrieves the data of a post by its ID.
    *   Parameters:
        *   `options`: *object* An object containing the post_id.
            *   `post_id`: *string* The ID of the post to retrieve.
    *   Returns: *Promise[object]* The data of the post.
    *   Throws: Error if the post_id is not provided.

*   `replies(options)`
    *   Retrieves the replies of a post by its ID.
    *   Parameters:
        *   `options`: *object* An object containing the post_id, page, and limit.
            *   `post_id`: *string* The ID of the post to retrieve replies for.
            *   `page`: *number, optional* The number of characters to page the reply content (default: 0).
            *   `limit`: *number, optional* The maximum number of replies to fetch (default: Settings.get("feed_max_fetch")).
    *   Returns: *Promise[object]* The data of the replies.
    *   Throws: Error if the post_id is not provided.

*   `getSavedPosts(options)`
    *   Retrieves the saved posts with optional trimming and limiting.
    *   Parameters:
        *   `options`: *object* An object containing the page and limit.
                *   `page`: *number, optional* The number of posts to page from the result (default: 0).
                *   `limit`: *number, optional* The maximum number of posts to fetch (default: Settings.get("feed_max_fetch")).
            *   Returns: *Promise[object]* The data of the liked posts.

        *   `getUserPosts(options)`
    *   Retrieves the liked posts with optional trimming and limiting.
    *   Parameters:
        *   `options`: *object* An object containing the page and limit.
            *   `page`: *number, optional* The number of posts to page from the result (default: 0).
            *   `limit`: *number, optional* The maximum number of posts to fetch (default: Settings.get("feed_max_fetch")).
    *   Returns: *Promise[object]* The data of the liked posts.

*   `getUserPosts(options)`
    *   Retrieves the posts of a user with optional trimming and limiting.
    *   Parameters:
        *   `options`: *object* An object containing the user_id, page, and limit.
            *   `user_id`: *string, optional* The ID of the user whose posts to retrieve. If not provided, the current user's ID will be used.
            *   `page`: *number, optional* The number of characters to page the post content (default: 0).
            *   `limit`: *number, optional* The maximum number of posts to fetch (default: Settings.get("feed_max_fetch")).
    *   Returns: *Promise[object]* The data of the user's posts.

*   `toggleLike(options)`
    *   Toggles the like status of a post.
    *   Parameters:
        *   `options`: *object* An object containing the post_id.
            *   `post_id`: *string* The ID of the post to toggle the like status.
    *   Returns: *Promise[object]* The response data after toggling the like status.
    *   Throws: Error if the post_id is not provided.

*   `toggleSave(options)`
    *   Toggles the save status of a post.
    *   Parameters:
        *   `options`: *object* An object containing the post_id.
            *   `post_id`: *string* The ID of the post to toggle the save status.
    *   Returns: *Promise[object]* The response data after toggling the save status.
    *   Throws: Error if the post_id is not provided.

*   `create(payload)`
    *   Creates a new post with the given payload.
    *   Parameters:
        *   `payload`: *object* The data to create the post with.
    *   Returns: *Promise[object]* The response data after creating the post.

*   `update(post_id, update)`
    *   Updates a post with the given post ID and update payload.
    *   Parameters:
        *   `post_id`: *string* The ID of the post to update.
        *   `update`: *object* The data to update the post with.
    *   Returns: *Promise[object]* The response data after updating the post.
    *   Throws: Error if the post_id is not provided.

*   `delete(options)`
    *   Deletes a post with the given post ID.
    *   Parameters:
        *   `options`: *object* An object containing the post_id.
            *   `post_id`: *string* The ID of the post to delete.
    *   Returns: *Promise[object]* The response data after deleting the post.
    *   Throws: Error if the post_id is not provided.

*   `votePoll(options)`
    *   Votes for a poll with the given post ID and option ID.
    *   Parameters:
        *   `options`: *object* An object containing the post_id and option_id.
            *   `post_id`: *string* The ID of the post to vote for.
            *   `
