diff --git a/server/routes/media.ts b/server/routes/media.ts index d7962825..8bc1b8ba 100644 --- a/server/routes/media.ts +++ b/server/routes/media.ts @@ -17,7 +17,7 @@ import logger from '@server/logger'; import { isAuthenticated } from '@server/middleware/auth'; import { Router } from 'express'; import type { FindOneOptions } from 'typeorm'; -import { In } from 'typeorm'; +import { In, IsNull, Not } from 'typeorm'; const mediaRoutes = Router(); @@ -68,12 +68,18 @@ mediaRoutes.get('/', async (req, res, next) => { }; } + let whereClause: FindOneOptions['where']; + if (statusFilter || req.query.sort === 'mediaAdded') { + whereClause = {}; + if (statusFilter) whereClause.status = statusFilter; + if (req.query.sort === 'mediaAdded') + whereClause.mediaAddedAt = Not(IsNull()); + } + try { const [media, mediaCount] = await mediaRepository.findAndCount({ order: sortFilter, - where: statusFilter && { - status: statusFilter, - }, + where: whereClause, take: pageSize, skip, });