Source code for domainrobot.services.contact
from __future__ import annotations
from ..models.resources import Contact
from ._base import BaseService
[docs]
class ContactService(BaseService):
"""Domain contact operations."""
[docs]
def create(self, body: dict, *, headers: dict | None = None):
"""Create a new domain contact.
:param body: Contact data.
:param headers: Optional extra HTTP headers.
:returns: Response with :class:`~domainrobot.models.resources.Contact` data.
"""
return self._request("POST", "/contact", json=body, headers=headers, model=Contact)
[docs]
def info(self, contact_id: int, *, headers: dict | None = None):
"""Inquire data for a domain contact.
:param contact_id: Contact ID.
:param headers: Optional extra HTTP headers.
:returns: Response with :class:`~domainrobot.models.resources.Contact` data.
"""
return self._request("GET", f"/contact/{contact_id}", headers=headers, model=Contact)
[docs]
def update(self, contact_id: int, body: dict, *, headers: dict | None = None):
"""Update a domain contact.
:param contact_id: Contact ID.
:param body: Contact data to update.
:param headers: Optional extra HTTP headers.
:returns: Response with :class:`~domainrobot.models.resources.Contact` data.
"""
return self._request(
"PUT", f"/contact/{contact_id}", json=body, headers=headers, model=Contact
)
[docs]
def delete(self, contact_id: int, *, headers: dict | None = None):
"""Delete a domain contact.
:param contact_id: Contact ID.
:param headers: Optional extra HTTP headers.
"""
return self._request("DELETE", f"/contact/{contact_id}", headers=headers)
[docs]
def list(
self,
body: dict | None = None,
*,
keys: list[str] | None = None,
headers: dict | None = None,
):
"""List domain contacts.
:param body: Optional query filters.
:param keys: Additional data keys to return.
:param headers: Optional extra HTTP headers.
:returns: Response with list of :class:`~domainrobot.models.resources.Contact`.
"""
return self._request(
"POST",
"/contact/_search",
json=body or {},
params=self._keys_params(keys),
headers=headers,
model=Contact,
)
[docs]
def comment_update(
self, contact_id: int, body: dict, *, headers: dict | None = None
):
"""Update the comment for a contact.
:param contact_id: Contact ID.
:param body: Comment data.
:param headers: Optional extra HTTP headers.
"""
return self._request(
"PUT", f"/contact/{contact_id}/_comment", json=body, headers=headers
)