from aws_lambda_powertools.event_handler.api_gateway import Router from config import app_logger as logger from src.logic.kyc_notification import ( handle_kyc_approved, handle_kyc_declined, handle_kyc_notification, handle_kyc_requirement_reopen, ) from src.models.kyc_notification import ( PayeeKycApprovedRequestModel, PayeeKycDeclinedRequestModel, PayeeKycNotificationRequestModel, PayeeKycRequirementReopenRequestModel, ) from src.models.payee import Payee router: Router = Router() @router.post('/program//payees/kyc/approved') def process_kyc_approved( program_id: int, body_data: PayeeKycApprovedRequestModel ) -> None: payee = Payee( payee_type=body_data.payee_entity_type, payee_id=str(body_data.payee_entity_id) ) logger.info(f'Payee: {str(payee)}') handle_kyc_approved(payee=payee) @router.post('/program//payees/kyc/declined') def process_kyc_declined( program_id: int, body_data: PayeeKycDeclinedRequestModel ) -> None: payee = Payee( payee_type=body_data.payee_entity_type, payee_id=str(body_data.payee_entity_id) ) logger.info(f'Payee: {str(payee)}') handle_kyc_declined( payee=payee, reason=body_data.reason, ) @router.post('/program//payees/kyc/notification') def process_kyc_notification( program_id: int, body_data: PayeeKycNotificationRequestModel ) -> None: payee = Payee( payee_type=body_data.payee_entity_type, payee_id=str(body_data.payee_entity_id) ) logger.info(f'Payee: {str(payee)}') handle_kyc_notification( payee=payee, file_upload_link=body_data.file_upload_link, requirement_id=body_data.requirement_id, sub_requirement_id=body_data.sub_requirement_id, ) @router.post('/program//payees/kyc/re-open') def process_kyc_requirement_reopen( program_id: int, body_data: PayeeKycRequirementReopenRequestModel ) -> None: payee = Payee( payee_type=body_data.payee_entity_type, payee_id=str(body_data.payee_entity_id) ) logger.info(f'Payee: {str(payee)}') handle_kyc_requirement_reopen( payee=payee, file_upload_link=body_data.file_upload_link, requirement_type_id=body_data.requirement_type_id, sub_requirement_status_id=body_data.sub_requirement_status_id, possible_sub_requirement_types=body_data.possible_sub_requirement_types, entity_reference_id=body_data.entity_reference_id, entity_reference_type_id=body_data.entity_reference_type_id, )