"""Blueprint for Ledger Adjustment API.""" from abacus_common_logic.views.list_view import ListView 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_adjustment as logic from ledger.models.ledger_adjustment import LedgerAdjustment from ledger.schemas.ledger_adjustment import LedgerAdjustmentListSchema ledger_adjustment_api = Blueprint('ledger_adjustment_api', __name__) class LedgerAdjustmentList(ListView): """View for ledger_adjustment listing.""" model_class = LedgerAdjustment list_entry_schema = LedgerAdjustmentListSchema() def get(self): """GET Ledger Adjustments.""" 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_adjustments(request.args)) ledger_adjustment_api.add_url_rule( '/ledger-adjustments/', methods=['GET'], view_func=LedgerAdjustmentList.as_view('list_ledger_adjustments'), ) @ledger_adjustment_api.route( '/ledger-adjustment/statement-period//pending', methods=['GET'], ) def get_pending_ledger_adjustments_by_statement_period_id(statement_period_id: int): """Get list of not applied ledger adjustments by statement_period_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, ) ) return flaskify( logic.get_pending_ledger_adjustments_by_statement_period_id( statement_period_id, request.args ) )