"""Blueprint for vendor contract API.""" from abacus_common_logic.views.create_view import CreateView from abacus_common_logic.views.item_view import ItemView from flask import Blueprint from abacus_legacy_sync.logic import vendor_contract as logic from abacus_legacy_sync.models import VendorContract from abacus_legacy_sync.schemas import ( VendorContractDetailSchema, VendorContractPostSchema, VendorContractPutSchema, ) vendor_contract_api = Blueprint('vendor_contract_api', __name__) class VendorContractCreate(CreateView): """POST a vendor contract.""" post_schema = VendorContractPostSchema() def create_handler(self, **params): """Create new vendor contract.""" return logic.create_vendor_contract(**params) class VendorContractItem(ItemView): """Handles GET and PUT operation on existing vendor_contract.""" model_class = VendorContract object_detail_schema = VendorContractDetailSchema() put_schema = VendorContractPutSchema() def update_handler(self, obj, **params): """Handle vendor contract updates.""" return logic.update_vendor_contract(obj, **params) vendor_contract_api.add_url_rule( '/vendor-contract', methods=['POST'], view_func=VendorContractCreate.as_view('create_vendor_contract'), ) vendor_contract_api.add_url_rule( '/vendor-contract/', methods=['PUT'], view_func=VendorContractItem.as_view('update_vendor_contract'), )