""" ActiveVendorContract Model. This ActiveVendorContract model uses sqlalchemy. It provides core functionality for getting active contract information by vendor_id. """ from sqlalchemy import Column, Integer from contracts import response from contracts.connectors import mysql class ActiveVendorContract(mysql.BaseModel): """ActiveVendorContract class.""" __tablename__ = 'vw_active_vendor_contract' vendor_id = Column(Integer, primary_key=True) vendor_contract_id = Column(Integer) DEFAULT_FIELDS = ( ActiveVendorContract.vendor_id, ActiveVendorContract.vendor_contract_id, ) def get_active_contract(vendor_id): """Get active contract information for a vendor. Args: vendor_id (int): unique identifier for the vendor. Returns: response.Response: row with active contract information if available. """ with mysql.db_session() as session: row = ( session.query(*DEFAULT_FIELDS) .filter(ActiveVendorContract.vendor_id == vendor_id) .one_or_none() ) if row: return response.Response(row._asdict()) return response.create_not_found_response()