Code source de artifacts.api.characters

from __future__ import annotations

from typing import Optional, TYPE_CHECKING

from ..models.character import ActiveCharacterSchema, CharacterSchema
from ..models.enums import CharacterSkin
from ..models.pagination import DataPage

if TYPE_CHECKING:
    from ..http import HttpClient


[docs] class CharactersAPI: """Character management endpoints."""
[docs] def __init__(self, http: HttpClient): self._http = http
[docs] async def create(self, name: str, skin: CharacterSkin) -> CharacterSchema: """POST /characters/create -- create a new character (max 5).""" return await self._http.post_model( "/characters/create", CharacterSchema, json={"name": name, "skin": skin}, )
[docs] async def delete(self, name: str) -> CharacterSchema: """POST /characters/delete -- delete a character.""" return await self._http.post_model( "/characters/delete", CharacterSchema, json={"name": name}, )
[docs] async def get_active( self, *, page: int = 1, size: int = 50 ) -> DataPage[ActiveCharacterSchema]: """GET /characters/active""" params = {"page": page, "size": size} return await self._http.get_page( "/characters/active", ActiveCharacterSchema, params=params )
[docs] async def get(self, name: str) -> CharacterSchema: """GET /characters/{name}""" return await self._http.get_model(f"/characters/{name}", CharacterSchema)