def callback(self, verification_details, verification_id=None, entity_id=None): logger.info(f"received callback for verification_id:{verification_id} with details {verification_details}") if entity_id is not None: verification = verification_repository.get_verification(entity_id=entity_id) elif verification_id is not None: verification = verification_repository.get_verification(verification_id=verification_id) else: raise BadRequestException() if verification is None: raise Exception(f"No verification found entity_id:{entity_id}, verification_id:{verification_id}") if verification.type == VerificationType.INDIVIDUAL.value: current_verification_repo = individual_repository elif verification.type == VerificationType.DUNS.value: current_verification_repo = duns_repository else: raise MethodNotImplemented() if verification.status != VerificationStatus.APPROVED.value: current_verification = current_verification_repo.get_verification(verification.id) if current_verification is None: raise Exception(f"Verification not found with {verification_id} {entity_id}") current_verification.update_callback(verification_details) comment_list = current_verification.comment_dict_list() verification.reject_reason = comment_list[0]["comment"] verification.status = current_verification.status verification_repository.update_verification(verification) current_verification_repo.update_verification(current_verification) self._ack_verification(verification) else: raise MethodNotImplemented() return {}
def get_verifications(event, context): query_parameters = event["queryStringParameters"] if "type" not in query_parameters: raise BadRequestException() response = VerificationManager().get_verifications(query_parameters) return generate_lambda_response(StatusCode.OK, {"status": ResponseStatus.SUCCESS, "data": response, "error": {}}, cors_enabled=True)
def initiate(event, context): payload = json.loads(event["body"]) username = event["requestContext"]["authorizer"]["claims"]["email"] required_keys = ["type"] if not validate_dict(payload, required_keys): raise BadRequestException() response = VerificationManager().initiate_verification(payload, username) return generate_lambda_response(StatusCode.CREATED, {"status": ResponseStatus.SUCCESS, "data": response, "error": {}}, cors_enabled=True)
def callback(event, context): logger.info(f"received event from jumio for callback {event}") payload = event["body"] path_parameters = event["pathParameters"] if "verification_id" not in path_parameters: raise BadRequestException() verification_id = path_parameters["verification_id"] response = VerificationManager().callback(verification_id, payload) return generate_lambda_response(StatusCode.CREATED, {"status": ResponseStatus.SUCCESS, "data": response, "error": {}}, cors_enabled=True)
def submit(event, context): logger.info(f"received submit from jumio {event}") query_parameters = event["queryStringParameters"] path_parameters = event["pathParameters"] if "transactionStatus" not in query_parameters: raise BadRequestException() status = query_parameters["transactionStatus"] verification_id = path_parameters["verification_id"] redirect_url = VerificationManager().submit(verification_id, status) return generate_lambda_response(StatusCode.FOUND, {"status": ResponseStatus.SUCCESS, "data": {}, "error": {}}, cors_enabled=True, headers={"location": redirect_url})
def get_status(event, context): query_parameters = event["queryStringParameters"] if "type" not in query_parameters: raise BadRequestException() verification_type = query_parameters["type"] if verification_type == VerificationType.JUMIO.value: entity_id = event["requestContext"]["authorizer"]["claims"]["email"] elif verification_type == VerificationType.DUNS.value: entity_id = query_parameters["entity_id"] else: raise Exception("Invalid verification type") response = VerificationManager().get_status_for_entity(entity_id) return generate_lambda_response(StatusCode.OK, {"status": ResponseStatus.SUCCESS, "data": response, "error": {}}, cors_enabled=True)
def callback(event, context): logger.info(f"received event from verification for callback {event}") payload = event["body"] path_parameters = event["queryStringParameters"] if "verification_id" not in path_parameters and "entity_id" not in path_parameters: raise BadRequestException() entity_id = path_parameters.get("entity_id") verification_id = path_parameters.get("verification_id") response = VerificationManager().callback(payload, verification_id=verification_id, entity_id=entity_id) return generate_lambda_response(StatusCode.CREATED, { "status": ResponseStatus.SUCCESS, "data": response, "error": {} }, cors_enabled=True)