"""Interface to the ows-payee microservice.""" from owsrequest import request from collaborator.constants import error, service_name from collaborator.utils import owsrequest PAYONEER_REFERENCE_PAYMENT_TYPE_ID = 8 def create_collaborator_payee(collaborator_id: int): """Create a collaborator payee. Args: collaborator_id (int): ID of the collaborator. Returns: dict: collaborator payee info """ payee_collaborator_payee_url = "/payee-collaborator" body = { "collaborator_id": collaborator_id, "reference_payment_type_id": PAYONEER_REFERENCE_PAYMENT_TYPE_ID, } res = request.post( service_name.OWS_PAYEE, payee_collaborator_payee_url, headers=owsrequest.get_default_ows_headers(), json=body, ) return owsrequest.unwrap_data_or_error(res, error.ERROR_CODE_OWS_PAYEE) def create_mass_payouts(program_id: int, payments: list[dict]) -> dict: """Submit a mass payout batch to ows-payee for a given Payoneer program. Args: program_id (int): Payoneer program ID to submit payouts under. payments (list[dict]): List of payout dicts, each containing `client_reference_id`, `payee_id`, `amount`, `currency`, and `description`. Returns: dict: Response data from ows-payee. """ url = f"/payoneer/programs/{program_id}/mass-payouts" res = request.post( service_name.OWS_PAYEE, url, headers=owsrequest.get_default_ows_headers(), json=payments, ) return owsrequest.unwrap_data_or_error(res, error.ERROR_CODE_OWS_PAYEE)