diff --git a/servers/fastapi/api/routers/presentation/handlers/get_presentations.py b/servers/fastapi/api/routers/presentation/handlers/get_presentations.py index 22937a12..d7d09951 100644 --- a/servers/fastapi/api/routers/presentation/handlers/get_presentations.py +++ b/servers/fastapi/api/routers/presentation/handlers/get_presentations.py @@ -1,7 +1,7 @@ -from sqlmodel import select +from sqlmodel import select, exists from api.models import LogMetadata from api.services.logging import LoggingService -from api.sql_models import PresentationSqlModel +from api.sql_models import PresentationSqlModel, SlideSqlModel from api.services.database import get_sql_session @@ -10,16 +10,16 @@ class GetPresentationsHandler: async def get(self, logging_service: LoggingService, log_metadata: LogMetadata): with get_sql_session() as sql_session: - presentations = sql_session.exec(select(PresentationSqlModel)).all() - - for each in presentations: - each.data = None - each.summary = None - if not each.thumbnail: - presentations.remove(each) + # Get presentations that have at least one slide + presentations = sql_session.exec( + select(PresentationSqlModel).where( + exists().where( + SlideSqlModel.presentation == PresentationSqlModel.id + ) + ) + ).all() presentations.sort(key=lambda x: x.created_at, reverse=True) - logging_service.logger.info( logging_service.message(