"""Blueprint for contract_template API.""" from abacus_common_logic.views.validations import validated_request_body from flask import Blueprint, request from owsrequest import flask_request from owsresponse import response from owsresponse.adaptors.flask import flaskify from abacus_contract.constants.error import ERROR_CODE_AUTHORIZATION from abacus_contract.logic import contract_template as logic from abacus_contract.schemas.contract_template import CreateContractByTemplatePostSchema contract_template_api = Blueprint('contract_template_api', __name__) @contract_template_api.route( '/contract-template//contract', methods=['POST'] ) def create_contract_from_template_id(contract_template_id): """Create a contract from the specified template id.""" access_rule_decision = flask_request.verify_rules_access_standalone(request) if not access_rule_decision: return flaskify( response.create_error_response( code=ERROR_CODE_AUTHORIZATION, message='Unauthorized', status=401, ) ) post_schema = CreateContractByTemplatePostSchema() parsed_body = validated_request_body(post_schema) return flaskify( logic.create_contract_from_template_id(contract_template_id, parsed_body) )