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)
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)
def test_model(self): test_deed = Deed() test_token = test_deed.generate_token() self.assertTrue(len(test_token) == 36)
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