42 lines
1.5 KiB
Python
42 lines
1.5 KiB
Python
"""Domain resource client using TypedDict shapes (no Pydantic)."""
|
|
from __future__ import annotations
|
|
|
|
from typing import Optional, Tuple, List
|
|
|
|
from .types import (
|
|
APIError,
|
|
Domain,
|
|
DomainCreate,
|
|
DomainCreateResponse,
|
|
DomainVerifyResponse,
|
|
)
|
|
|
|
|
|
class Domains:
|
|
"""Client for `/domains` endpoints."""
|
|
|
|
def __init__(self, usesend: "UseSend") -> None:
|
|
self.usesend = usesend
|
|
|
|
def list(self) -> Tuple[Optional[List[Domain]], Optional[APIError]]:
|
|
data, err = self.usesend.get("/domains")
|
|
return (data, err) # type: ignore[return-value]
|
|
|
|
def create(self, payload: DomainCreate) -> Tuple[Optional[DomainCreateResponse], Optional[APIError]]:
|
|
data, err = self.usesend.post("/domains", payload)
|
|
return (data, err) # type: ignore[return-value]
|
|
|
|
def verify(self, domain_id: int) -> Tuple[Optional[DomainVerifyResponse], Optional[APIError]]:
|
|
data, err = self.usesend.put(f"/domains/{domain_id}/verify", {})
|
|
return (data, err) # type: ignore[return-value]
|
|
|
|
def get(self, domain_id: int) -> Tuple[Optional[Domain], Optional[APIError]]:
|
|
data, err = self.usesend.get(f"/domains/{domain_id}")
|
|
return (data, err) # type: ignore[return-value]
|
|
|
|
def delete(self, domain_id: int) -> Tuple[Optional[Domain], Optional[APIError]]:
|
|
data, err = self.usesend.delete(f"/domains/{domain_id}")
|
|
return (data, err) # type: ignore[return-value]
|
|
|
|
from .usesend import UseSend # noqa: E402 pylint: disable=wrong-import-position
|