"""Templates resource — stored message templates with ``{{variable}}`` placeholders. Backed by ``src/modules/template/template.controller.ts``. """ from __future__ import annotations from typing import TYPE_CHECKING from .._http import quote_segment from ..types import CreateTemplateRequest, TemplateRecord, UpdateTemplateRequest if TYPE_CHECKING: from .._http import HttpExecutor class TemplatesResource: def __init__(self, http: "HttpExecutor") -> None: self._http = http def list(self, session_id: str) -> list[TemplateRecord]: return self._http.request("GET", f"/api/sessions/{quote_segment(session_id)}/templates") def get(self, session_id: str, template_id: str) -> TemplateRecord: return self._http.request("GET", f"/api/sessions/{quote_segment(session_id)}/templates/{quote_segment(template_id)}") def create(self, session_id: str, body: CreateTemplateRequest) -> TemplateRecord: return self._http.request("POST", f"/api/sessions/{quote_segment(session_id)}/templates", body=body) def update(self, session_id: str, template_id: str, body: UpdateTemplateRequest) -> TemplateRecord: return self._http.request("PUT", f"/api/sessions/{quote_segment(session_id)}/templates/{quote_segment(template_id)}", body=body) def delete(self, session_id: str, template_id: str) -> None: self._http.request("DELETE", f"/api/sessions/{quote_segment(session_id)}/templates/{quote_segment(template_id)}")