"""Blueprint for Reference Adjustment Type.""" from abacus_common_logic.views.item_view import ItemView 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.models.reference_adjustment_type import ReferenceAdjustmentType from ledger.schemas.reference_adjustment_type import ReferenceAdjustmentTypeDetailSchema reference_adjustment_type_api = Blueprint('reference_adjustment_type_api', __name__) class ReferenceAdjustmentTypeItemView(ItemView): """View getting reference adjustment type by ID.""" model_class = ReferenceAdjustmentType object_detail_schema = ReferenceAdjustmentTypeDetailSchema() def get(self, object_id, **kwargs): """Retrieve reference adjustment type by 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 super().get(object_id, **kwargs) class ReferenceAdjustmentTypeListView(ListView): """View for listing reference adjustment type entries.""" model_class = ReferenceAdjustmentType list_entry_schema = ReferenceAdjustmentTypeDetailSchema() def get(self): """Retrieve reference adjustment type list.""" 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 super().get() reference_adjustment_type_api.add_url_rule( '/reference-adjustment-types/', methods=['GET'], view_func=ReferenceAdjustmentTypeItemView.as_view('reference_adjustment_type'), ) reference_adjustment_type_api.add_url_rule( '/reference-adjustment-types/', methods=['GET'], view_func=ReferenceAdjustmentTypeListView.as_view('list_reference_adjustment_type'), )