Spaces:
Sleeping
Sleeping
| from fastapi import APIRouter, HTTPException, Form, Depends | |
| from sqlalchemy.ext.asyncio import AsyncSession | |
| from sqlalchemy import select | |
| from app.schemas.schemas import CommitteeDesignation, Code | |
| from app.database.db import get_async_session | |
| import logging | |
| from app.services.committee_designation import committee_designation_service | |
| log = logging.getLogger(__name__) | |
| router = APIRouter(prefix="/api", tags=["committee_designations"]) | |
| async def get_committee_designations( | |
| session: AsyncSession = Depends(get_async_session) | |
| ): | |
| committee_designations = await committee_designation_service.get_committee_designations(session) | |
| return [CommitteeDesignation.model_validate(committee_designation) for committee_designation in committee_designations] | |
| async def get_codes_by_designation( | |
| limit: int=10, | |
| designation: str=None, | |
| session: AsyncSession = Depends(get_async_session) | |
| ): | |
| codes = await committee_designation_service.get_codes_by_designation(session, designation, limit) | |
| return [Code.model_validate(code) for code in codes] | |
| async def get_definitions_by_designation( | |
| limit: int=10, | |
| designation: str=None, | |
| session: AsyncSession = Depends(get_async_session) | |
| ): | |
| definitions = await committee_designation_service.get_definitions_by_designation(session, designation, limit) | |
| definitions_list = [] | |
| for definition, committee_designation in definitions: | |
| definitions_list.append(Definition.model_validate({ | |
| "definition": definition.definition, | |
| "term": definition.term, | |
| "letter_tag": definition.letter_tag, | |
| "committee_designation": committee_designation.description if committee_designation else "No committee designation", | |
| })) | |
| return definitions_list |