From 0b224ba4071e2be7bed82c82d906168867f01e61 Mon Sep 17 00:00:00 2001 From: sauravniraula Date: Mon, 19 May 2025 03:08:58 +0545 Subject: [PATCH] fix(fastapi):filter presentation based on number of slides --- .../handlers/get_presentations.py | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) 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(