Source code for MeowerBot.api.chats

from httpx import AsyncClient, Response

from .shared import api_resp
from ..data import generic
from ..data.api.chats import ChatGroup, Chats as ChatsResp


[docs] def chat_return(resp: Response): return api_resp(ChatGroup, resp)
[docs] class Chats: def __init__(self, client: AsyncClient) -> None: self.client = client
[docs] async def fetch_all(self): return api_resp(ChatsResp, await self.client.get("/chats/", params={"autoget": None}))
[docs] async def create(self, nickname: str): return chat_return(await self.client.post("/chats/", json={"nickname": nickname}))
[docs] async def get(self, uuid: generic.UUID): return chat_return(await self.client.get(f"/chats/{uuid}", params={"autoget": None}))
[docs] async def update(self, uuid: generic.UUID, nickname: str): return chat_return(await self.client.patch(f"/chats/{uuid}", json={"nickname": nickname}))
# noinspection PyTypeChecker
[docs] async def leave(self, uuid: generic.UUID): return api_resp(dict, await self.client.delete(f"/chats/{uuid}"))
[docs] async def add_user(self, uuid: generic.UUID, username: str): return chat_return(await self.client.put(f"/chats/{uuid}/members/{username}"))
[docs] async def transfer_ownership(self, uuid: generic.UUID, username: str): return chat_return(await self.client.post(f"/chats/{uuid}/members/{username}/transfer"))