import logging from datetime import datetime from typing import Annotated, List, Optional from fastapi import APIRouter, Depends, HTTPException, Query from pydantic import BaseModel from common import auth from common.common import configure_logging from components.services.log import LogService from schemas.log import LogCreateSchema, LogFilterSchema, LogSchema, PaginatedLogResponse import common.dependencies as DI router = APIRouter(tags=['Logs']) logger = logging.getLogger(__name__) configure_logging() @router.get('/logs', response_model=PaginatedLogResponse) async def get_all_logs( filters: Annotated[LogFilterSchema, Depends()], log_service: Annotated[LogService, Depends(DI.get_log_service)], current_user: Annotated[any, Depends(auth.get_current_user)] ): logger.info(f'GET /logs') try: return log_service.get_list(filters) except HTTPException as e: raise e except Exception as e: raise HTTPException(status_code=500, detail=str(e))