"""Blueprint for Ledger Reserve Release Schedule.""" 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 import ledger.logic.ledger_reserve_release_schedule as logic from ledger.constants.error import ERROR_CODE_AUTHORIZATION from ledger.schemas.ledger_reserve_release_schedule import ( LedgerReserveReleaseSchedulePostSchema, ) ledger_reserve_release_schedule_api = Blueprint( 'ledger_reserve_release_schedule_api', __name__, url_prefix='/ledger-reserve-release-schedule', ) @ledger_reserve_release_schedule_api.route('/bulk', methods=['POST']) def bulk_create_ledger_reserve_release_schedule(): """POST one or more ledger_reserve_release_schedule 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, ) ) processed_body = validated_request_body( LedgerReserveReleaseSchedulePostSchema(many=True) ) return flaskify(logic.bulk_create(processed_body)) @ledger_reserve_release_schedule_api.route( '/statement-period//release', methods=['GET'] ) def get_ledger_reserve_release_by_statement_period_id(statement_period_id): """GET list of ledger_reserve_release_schedule by a specified statement 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=401, ) ) return flaskify(logic.get_by_release_statement_period_id(statement_period_id))