"""Blueprint for Ledger Accounting Run VAT API.""" from flask import Blueprint, request from owsrequest import flask_request from owsresponse import response from owsresponse.adaptors.flask import flaskify from ledger.constants.error import ERROR_CODE_AUTHORIZATION from ledger.logic import ledger_accounting_run_vat as logic ledger_accounting_run_vat_api = Blueprint( 'ledger_accounting_run_vat_api', __name__, url_prefix='/ledger-accounting-run-vat' ) @ledger_accounting_run_vat_api.route( '/accounting-period//overview', methods=['GET'] ) def get_ledger_accounting_run_vat_overview(accounting_period_id): """GET count of contracts by VAT category for a specific accounting_period.""" 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=403, ) ) return flaskify(logic.get_ledger_accounting_run_vat_overview(accounting_period_id)) @ledger_accounting_run_vat_api.route( '/accounting-period//vat-category//', methods=['GET'], ) def get_ledger_vat_list(accounting_period_id, vat_category): """Get list of ledger run vat for an accounting period by vat category and country code.""" 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, ) ) return flaskify( logic.get_ledger_vat_list(accounting_period_id, vat_category, request.args) ) @ledger_accounting_run_vat_api.route('/bulk', methods=['POST']) def bulk_create_ledger_accounting_run_vat_entries(): """POST one or more ledger_accounting_run_vat records.""" 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, ) ) return flaskify(logic.bulk_create(request.get_json()))