Source code for mattermostautodriver.endpoints.scheduled_post

from ._base import Base
from typing import Any, BinaryIO

__all__ = ["ScheduledPost"]


[docs] class ScheduledPost(Base):
[docs] def create_scheduled_post( self, scheduled_at: int, channel_id: str, message: str, root_id: str | None = None, file_ids: list[Any] | None = None, props: dict[str, Any] | None = None, ): """Creates a scheduled post scheduled_at: UNIX timestamp in milliseconds of the time when the scheduled post should be sent channel_id: The channel ID to post in message: The message contents, can be formatted with Markdown root_id: The post ID to comment on file_ids: A list of file IDs to associate with the post. Note that posts are limited to 5 files maximum. Please use additional posts for more files. props: A general JSON property bag to attach to the post `Read in Mattermost API docs (scheduled_post - CreateScheduledPost) <https://developers.mattermost.com/api-documentation/#/operations/CreateScheduledPost>`_ """ __options = { "scheduled_at": scheduled_at, "channel_id": channel_id, "message": message, "root_id": root_id, "file_ids": file_ids, "props": props, } return self.client.post("""/api/v4/posts/schedule""", options=__options)
[docs] def get_user_scheduled_posts(self, includeDirectChannels: bool | None = False): """Gets all scheduled posts for a user for the specified team.. includeDirectChannels: Whether to include scheduled posts from DMs an GMs or not. Default is false `Read in Mattermost API docs (scheduled_post - GetUserScheduledPosts) <https://developers.mattermost.com/api-documentation/#/operations/GetUserScheduledPosts>`_ """ __params = {"includeDirectChannels": includeDirectChannels} return self.client.get(f"/api/v4/posts/scheduled/team/{team_id}", params=__params)
[docs] def update_scheduled_post( self, scheduled_post_id: str, id: str, channel_id: str, user_id: str, scheduled_at: int, message: str ): """Update a scheduled post scheduled_post_id: ID of the scheduled post to update id: ID of the scheduled post to update channel_id: The channel ID to post in user_id: The current user ID scheduled_at: UNIX timestamp in milliseconds of the time when the scheduled post should be sent message: The message contents, can be formatted with Markdown `Read in Mattermost API docs (scheduled_post - UpdateScheduledPost) <https://developers.mattermost.com/api-documentation/#/operations/UpdateScheduledPost>`_ """ __options = { "id": id, "channel_id": channel_id, "user_id": user_id, "scheduled_at": scheduled_at, "message": message, } return self.client.put(f"/api/v4/posts/schedule/{scheduled_post_id}", options=__options)
[docs] def delete_scheduled_post(self, scheduled_post_id: str): """Delete a scheduled post scheduled_post_id: ID of the scheduled post to delete `Read in Mattermost API docs (scheduled_post - DeleteScheduledPost) <https://developers.mattermost.com/api-documentation/#/operations/DeleteScheduledPost>`_ """ return self.client.delete(f"/api/v4/posts/schedule/{scheduled_post_id}")