Source code for ABConnect.api.endpoints.contacts

"""Contacts API endpoints.

Auto-generated from swagger.json specification.
Provides type-safe access to contacts/* endpoints.
"""

from typing import List, Optional

from ABConnect.api.endpoints.base import BaseEndpoint
from ABConnect.api import models
from ABConnect.api.routes import SCHEMA


[docs] class ContactsEndpoint(BaseEndpoint): """Contacts API endpoint operations. Handles all API operations for /api/contacts/* endpoints. Total endpoints: 14 """ api_path = "contacts" routes = SCHEMA["CONTACTS"]
[docs] def post_history(self, contactId: str, data: dict = None) -> dict: """POST /api/contacts/{contactId}/history Returns: dict: API response data """ route = self.routes["HISTORY"] route.params = {"contactId": contactId} kwargs = {} if data is not None: kwargs["json"] = data return self._make_request(route, **kwargs)
[docs] def get_history_aggregated( self, contactId: str, statuses: Optional[str] = None ) -> dict: """GET /api/contacts/{contactId}/history/aggregated Returns: dict: API response data """ route = self.routes["HISTORY_AGGREGATED"] route.params = {"contactId": contactId} if statuses is not None: route.params["statuses"] = statuses return self._make_request(route)
[docs] def get_history_graphdata( self, contactId: str, statuses: Optional[str] = None ) -> dict: """GET /api/contacts/{contactId}/history/graphdata Returns: dict: API response data """ route = self.routes["HISTORY_GRAPHDATA"] route.params = {"contactId": contactId} if statuses is not None: route.params["statuses"] = statuses return self._make_request(route)
[docs] def post_merge_preview(self, mergeToId: str, data: dict = None) -> dict: """POST /api/contacts/{mergeToId}/merge/preview Returns: dict: API response data """ route = self.routes["MERGE_PREVIEW"] route.params = {"mergeToId": mergeToId} kwargs = {} if data is not None: kwargs["json"] = data return self._make_request(route, **kwargs)
[docs] def put_merge(self, mergeToId: str, data: dict = None) -> dict: """PUT /api/contacts/{mergeToId}/merge Returns: dict: API response data """ route = self.routes["MERGE"] route.params = {"mergeToId": mergeToId} kwargs = {} if data is not None: kwargs["json"] = data return self._make_request(route, **kwargs)
[docs] def get(self, id: str) -> models.ContactDetails: """GET /api/contacts/{id} Retrieves contact details by ID. Args: id: Contact ID (GUID string) Returns: ContactDetails: Typed contact details model """ route = self.routes['GET'] route.params = {"id": id} return self._make_request(route)
[docs] def get_ah(self, houseid, *args, **kwargs) -> dict: id = self.get_cache(houseid) return self.get(id)
[docs] def get_user(self) -> dict: """GET /api/contacts/user Returns the current logged-in user's contact info. Returns: dict: Contact info for current user """ route = self.routes['USER'] return self._make_request(route)
[docs] def get_editdetails(self, contactId: str) -> dict: """GET /api/contacts/{contactId}/editdetails Returns: dict: API response data """ route = self.routes["GET_EDITDETAILS"] route.params = {"contactId": contactId} return self._make_request(route)
[docs] def put_editdetails( self, contactId: str, franchisee_id: Optional[str] = None, data: dict = None ) -> dict: """PUT /api/contacts/{contactId}/editdetails Returns: dict: API response data """ route = self.routes["PUT_EDITDETAILS"] route.params = {"contactId": contactId} if franchisee_id is not None: route.params["franchiseeId"] = franchisee_id kwargs = {} if data is not None: kwargs["json"] = data return self._make_request(route, **kwargs)
[docs] def post_editdetails( self, franchisee_id: Optional[str] = None, data: dict = None ) -> dict: """POST /api/contacts/editdetails Returns: dict: API response data """ route = self.routes["POST_EDITDETAILS"] if franchisee_id is not None: route.params = {"franchiseeId": franchisee_id} kwargs = {} if data is not None: kwargs["json"] = data return self._make_request(route, **kwargs)
[docs] def post_customers(self, data: dict = None) -> dict: """POST /api/contacts/customers Returns: dict: API response data """ route = self.routes["CUSTOMERS"] kwargs = {} if data is not None: kwargs["json"] = data return self._make_request(route, **kwargs)
[docs] def get_primarydetails(self, contactId: str) -> dict: """GET /api/contacts/{contactId}/primarydetails Returns: dict: API response data """ route = self.routes["PRIMARYDETAILS"] route.params = {"contactId": contactId} return self._make_request(route)
[docs] def get_did(self, displayId): id = self.get_cache(displayId) return self.get_get(id)