import chariot._apis
from chariot.tracker import _utils, models
__all__ = ["create_tracker", "get_tracker", "update_tracker", "delete_tracker"]
[docs]
def create_tracker(
request_body: models.NewCreateTrackerRequest,
) -> models.Tracker | None:
"""Create a new tracker.
:param request_body: The create tracker specification.
:type request_body: NewCreateTrackerRequest
:return: The tracker.
:rtype: Optional[models.Tracker]
"""
response = chariot._apis.models.tracker_api.tracker_post(body=request_body.model_dump())
if not response:
return None
return _utils.convert_to_dataclass(response.model_dump(), models.Tracker)
[docs]
def get_tracker(tracker_id: str) -> models.Tracker | None:
"""Get an existing tracker.
:param tracker_id: The tracker id.
:type tracker_id: str
:return: The tracker.
:rtype: Optional[models.Tracker]
"""
response = chariot._apis.models.tracker_api.tracker_id_get(id=tracker_id)
if not response:
return None
return _utils.convert_to_dataclass(response.model_dump(), models.Tracker)
[docs]
def update_tracker(request_body: models.NewUpdateTrackerRequest):
"""Update an existing tracker.
:param request_body: The update tracker specification.
:type request_body: NewUpdateTrackerRequest
"""
return chariot._apis.trackproducer.tracker_api.tracker_update_post(
body=request_body.model_dump()
)
[docs]
def delete_tracker(tracker_id: str):
"""Delete an existing tracker.
:param tracker_id: The tracker id.
:type tracker_id: str
"""
return chariot._apis.models.tracker_api.tracker_id_delete(id=tracker_id)