Files
booksync/libs/mangacollec/src/mangacollec/interface/mutation_client_interface.py
T
2026-10-07 00:38:38 +02:00

25 lines
1.1 KiB
Python

# __ _____ _ __ ____________________ __ _____________________ _____ _______________
# / ___/ / /_ ____ ____ / /_ ___ ____ / __ \ ___ _ __/
# \__ \ / __ \ / __ \ / __ \ / __/ / _ \ / __/ ____ / / / / / _ \ | | / /
# ___/ / / / / / / /_/ / / /_/ / / /_ / __/ / / /___/ / /_/ / / __/ | |/ /
# /____/ /_/ /_/ \____/ \____/ \__/ \___/ /_/ _______ /______/ \___/ |___/
"""Ports HTTP des endpoints de mutation, substituables par des doubles de test."""
from typing import Protocol
class IPostClient(Protocol):
"""Transport requis par un endpoint de création."""
async def post(self, url: str, data: dict[str, object] | list[dict[str, str]]) -> dict[str, object]:
"""Envoyer le corps JSON et retourner la réponse décodée."""
...
class IDeleteClient(Protocol):
"""Transport requis par un endpoint de suppression."""
async def delete(self, url: str, data: dict[str, object] | list[dict[str, str]] | None = None) -> dict[str, object]:
"""Supprimer la ressource ; une réponse sans contenu devient un objet vide."""
...