Exemplo n.º 1
0
def create():
    deed_json = request.get_json()
    error_count, error_message = validate_helper(deed_json)

    if error_count > 0:
        LOGGER.error("Schema validation 400_BAD_REQUEST")
        return error_message, status.HTTP_400_BAD_REQUEST
    else:

        try:
            deed = Deed()
            deed.token = Deed.generate_token()
            check_result = Akuma.do_check(deed_json, "create deed")
            LOGGER.info("Check ID: " + check_result['id'])

            organisation_credentials = process_organisation_credentials()

            if organisation_credentials:
                deed.organisation_id = organisation_credentials["O"][1]
                deed.organisation_name = organisation_credentials["O"][0]
                success, msg = update_deed(deed, deed_json,
                                           check_result['result'])

                if not success:
                    LOGGER.error("Update deed 400_BAD_REQUEST")
                    return msg, status.HTTP_400_BAD_REQUEST
            else:
                LOGGER.error("Unable to process headers")
                return "Unable to process headers", status.HTTP_401_UNAUTHORIZED

            if check_result['result'] != "A":
                LOGGER.error("Akuma endpoint 503_SERVICE_UNAVAILABLE")
                return abort(status.HTTP_503_SERVICE_UNAVAILABLE)

            return jsonify({"path": '/deed/' + str(deed.token)
                            }), status.HTTP_201_CREATED

        except:
            msg = str(sys.exc_info())
            LOGGER.error("Database Exception - %s" % msg)
            abort(status.HTTP_500_INTERNAL_SERVER_ERROR)
Exemplo n.º 2
0
def create():
    deed_json = request.get_json()
    error_count, error_message = validate_helper(deed_json)

    if error_count > 0:
        LOGGER.error("Schema validation 400_BAD_REQUEST")
        return error_message, status.HTTP_400_BAD_REQUEST
    else:

        try:
            deed = Deed()
            deed.token = Deed.generate_token()
            check_result = Akuma.do_check(deed_json, "create deed")
            LOGGER.info("Check ID: " + check_result['id'])

            organisation_credentials = process_organisation_credentials()

            if organisation_credentials:
                deed.organisation_id = organisation_credentials["O"][1]
                deed.organisation_name = organisation_credentials["O"][0]
                success, msg = update_deed(deed, deed_json, check_result['result'])

                if not success:
                    LOGGER.error("Update deed 400_BAD_REQUEST")
                    return msg, status.HTTP_400_BAD_REQUEST
            else:
                LOGGER.error("Unable to process headers")
                return "Unable to process headers", status.HTTP_401_UNAUTHORIZED

            if check_result['result'] != "A":
                LOGGER.error("Akuma endpoint 503_SERVICE_UNAVAILABLE")
                return abort(status.HTTP_503_SERVICE_UNAVAILABLE)

            return jsonify({"path": '/deed/' + str(deed.token)}), status.HTTP_201_CREATED

        except:
            msg = str(sys.exc_info())
            LOGGER.error("Database Exception - %s" % msg)
            abort(status.HTTP_500_INTERNAL_SERVER_ERROR)
Exemplo n.º 3
0
 def test_model(self):
     test_deed = Deed()
     test_token = test_deed.generate_token()
     self.assertTrue(len(test_token) == 36)
Exemplo n.º 4
0
def create():
    deed = Deed()
    deed.token = Deed.generate_token()
    deed_json = request.get_json()

    validator = Validation()

    credentials = validator.validate_organisation_credentials()
    if credentials is None:
        return '', status.HTTP_401_UNAUTHORIZED

    deed.organisation_name = credentials['organisation_name']

    schema_errors = validator.validate_payload(deed_json)

    if schema_errors:
        compiled_list = send_error_list(schema_errors)
        return compiled_list

    validate_title_number = validator.validate_title_number(deed_json)
    if validate_title_number != "title OK":
        errors = []
        errors.append(validate_title_number)
        compiled_list = send_error_list(errors)

        return compiled_list

    # From here - errors are grouped
    error_list = []

    validate_borrower_names, msg = validator.validate_borrower_names(deed_json)
    if not validate_borrower_names:
        error_list.append(msg)

    create_deed_akuma = validator.call_akuma(
        deed_json,
        deed.token,
        credentials['organisation_name'],
        credentials['organisation_locale'],
        deed_type="create deed")

    if create_deed_akuma["result"] == "Z":
        return jsonify({"message": "Unable to use this service. "
                                   "This might be because of technical difficulties or entries on the register not "
                                   "being suitable for digital applications. "
                                   "You will need to complete this transaction using a paper deed."}), \
            status.HTTP_403_FORBIDDEN

    id_validate, msg = validator.validate_borrower_ids(deed_json)
    if not id_validate:
        error_list.append(msg)

    dob_validate, msg = validator.validate_dob(deed_json)
    if not dob_validate:
        error_list.append(msg)

    phone_validate, msg = validator.validate_phonenumbers(deed_json)
    if not phone_validate:
        error_list.append(msg)

    md_validate, msg = validator.validate_md_exists(deed_json['md_ref'])
    if not md_validate:
        error_list.append(msg)

    # Error List Print Out
    if len(error_list) > 0:
        compiled_list = send_error_list(error_list)
        return compiled_list

    success, msg = update_deed(deed, deed_json)
    if not success:
        application.app.logger.error("Create deed 400_BAD_REQUEST")
        return msg, status.HTTP_400_BAD_REQUEST
    else:
        application.app.logger.info("Deed has been created successfully.")

    return jsonify({"path":
                    '/deed/' + str(deed.token)}), status.HTTP_201_CREATED
Exemplo n.º 5
0
 def test_model(self):
     test_deed = Deed()
     test_token = test_deed.generate_token()
     self.assertTrue(len(test_token) == 36)