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)
Exemple #5
0
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)