"""Blueprint for account_payment_term template API.""" from abacus_common_logic.views.create_view import CreateView from flask import Blueprint from flask import request from owsrequest import flask_request from owsresponse import response from owsresponse.adaptors.flask import flaskify from abacus_account.constants import error from abacus_account.logic import account_payment_term_template as logic from abacus_account.schemas.account_payment_term_template import \ AccountPaymentTermTemplatePostSchema account_payment_term_template_api = Blueprint( 'account_payment_term_template_api', __name__ ) class AccountPaymentTermTemplateCreateView(CreateView): """Handles an account_payment_term creation by template.""" post_schema = AccountPaymentTermTemplatePostSchema() def post(self, **kwargs): """Create an account_payment_term by template.""" access_rule_decision = flask_request.verify_rules_access_standalone(request) if not access_rule_decision: return flaskify(response.create_error_response( code=error.ERROR_CODE_AUTHORIZATION, message='Unauthorized', status=401, )) return super().post(**kwargs) def create_handler(self, **params): """Create an account_payment_term by template.""" return logic.create_payment_terms_from_template(**params) account_payment_term_template_api.add_url_rule( '/account-payment-term-template//account-payment-term', view_func=AccountPaymentTermTemplateCreateView.as_view( 'create_payment_term_from_template' ) )