Source code for mattermostautodriver.endpoints.status

from ._base import Base
from typing import Any, BinaryIO

__all__ = ["Status"]


[docs] class Status(Base):
[docs] def get_user_status(self, user_id: str): """Get user status user_id: User ID `Read in Mattermost API docs (status - GetUserStatus) <https://developers.mattermost.com/api-documentation/#/operations/GetUserStatus>`_ """ return self.client.get(f"/api/v4/users/{user_id}/status")
[docs] def update_user_status(self, user_id: str, status: str, dnd_end_time: int | None = None): """Update user status user_id: User ID user_id: User ID status: User status, can be ``online``, ``away``, ``offline`` and ``dnd`` dnd_end_time: Time in epoch seconds at which a dnd status would be unset. `Read in Mattermost API docs (status - UpdateUserStatus) <https://developers.mattermost.com/api-documentation/#/operations/UpdateUserStatus>`_ """ __options = {"user_id": user_id, "status": status, "dnd_end_time": dnd_end_time} return self.client.put(f"/api/v4/users/{user_id}/status", options=__options)
[docs] def get_users_statuses_by_ids(self, options: list[str]): """Get user statuses by id `Read in Mattermost API docs (status - GetUsersStatusesByIds) <https://developers.mattermost.com/api-documentation/#/operations/GetUsersStatusesByIds>`_ """ return self.client.post("""/api/v4/users/status/ids""", options=options)
[docs] def update_user_custom_status( self, user_id: str, emoji: str, text: str, duration: str | None = None, expires_at: str | None = None ): """Update user custom status user_id: User ID emoji: Any emoji text: Any custom status text duration: Duration of custom status, can be ``thirty_minutes``, ``one_hour``, ``four_hours``, ``today``, ``this_week`` or ``date_and_time`` expires_at: The time at which custom status should be expired. It should be in ISO format. `Read in Mattermost API docs (status - UpdateUserCustomStatus) <https://developers.mattermost.com/api-documentation/#/operations/UpdateUserCustomStatus>`_ """ __options = {"emoji": emoji, "text": text, "duration": duration, "expires_at": expires_at} return self.client.put(f"/api/v4/users/{user_id}/status/custom", options=__options)
[docs] def unset_user_custom_status(self, user_id: str): """Unsets user custom status user_id: User ID `Read in Mattermost API docs (status - UnsetUserCustomStatus) <https://developers.mattermost.com/api-documentation/#/operations/UnsetUserCustomStatus>`_ """ return self.client.delete(f"/api/v4/users/{user_id}/status/custom")
[docs] def remove_recent_custom_status(self, user_id: str, emoji: str, text: str, duration: str, expires_at: str): """Delete user's recent custom status user_id: User ID emoji: Any emoji text: Any custom status text duration: Duration of custom status, can be ``thirty_minutes``, ``one_hour``, ``four_hours``, ``today``, ``this_week`` or ``date_and_time`` expires_at: The time at which custom status should be expired. It should be in ISO format. `Read in Mattermost API docs (status - RemoveRecentCustomStatus) <https://developers.mattermost.com/api-documentation/#/operations/RemoveRecentCustomStatus>`_ """ __params = {"emoji": emoji, "text": text, "duration": duration, "expires_at": expires_at} return self.client.delete(f"/api/v4/users/{user_id}/status/custom/recent", params=__params)
[docs] def post_user_recent_custom_status_delete( self, user_id: str, emoji: str, text: str, duration: str, expires_at: str ): """Delete user's recent custom status user_id: User ID emoji: Any emoji text: Any custom status text duration: Duration of custom status, can be ``thirty_minutes``, ``one_hour``, ``four_hours``, ``today``, ``this_week`` or ``date_and_time`` expires_at: The time at which custom status should be expired. It should be in ISO format. `Read in Mattermost API docs (status - PostUserRecentCustomStatusDelete) <https://developers.mattermost.com/api-documentation/#/operations/PostUserRecentCustomStatusDelete>`_ """ __options = {"emoji": emoji, "text": text, "duration": duration, "expires_at": expires_at} return self.client.post(f"/api/v4/users/{user_id}/status/custom/recent/delete", options=__options)