"""Client for making requests to OwsAbacusEvent.""" from moneyhub.connectors.ows_service import OwsService class OwsAbacusEvent(OwsService): """OwsMoneyhub client for fetching requests.""" _service = 'ows-abacus-event' @classmethod def create_abacus_event( cls, event_name: str, target_id: int, target_type: str, statement_period_id: int | None = None ) -> dict: """Create a POST request to create new abacus events to invoke the lambda. Args: event_name (str): the name of event. target_id (int): target id for event. target_type (str): target type for event. statement_period_id (int): statement period id. Returns: dict: abacus event dict. """ payload = { 'event_name': event_name, 'target_id': target_id, 'target_type': target_type } if statement_period_id is not None: payload['statement_period_id'] = statement_period_id path = '/abacus-event' return cls.validate_response_type(cls.post(path, payload), dict)