From ec1d1705e76934d149a1a4afce5b36613cf0e22d Mon Sep 17 00:00:00 2001 From: MasutaYunikon Date: Sat, 23 May 2026 18:58:55 +0200 Subject: [PATCH] =?UTF-8?q?feat(search):=20ajout=20des=20requetes=20deja?= =?UTF-8?q?=20demand=C3=A9=20si=20existante=20sur=20la=20serie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/routes/public-api.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/server/routes/public-api.ts b/server/routes/public-api.ts index 8f0ae97..005b138 100644 --- a/server/routes/public-api.ts +++ b/server/routes/public-api.ts @@ -81,6 +81,21 @@ router.get('/v1/series/search', requireApiToken, async (req, res) => { const availableSet = new Set(availableIds) const all: any[] = (Array.isArray(apiData) ? apiData : (apiData.series ?? [])).map(normalizeSerie) + // Demandes actives de cet utilisateur, indexées par serieId + const activeRequests = getRequestsForUser(req.user!.id) + .filter(r => r.status !== 'rejected' && r.status !== 'completed') + const requestMap = new Map() + for (const r of activeRequests) { + const me = r.requesters.find(rq => rq.userId === req.user!.id) + if (!me) continue + requestMap.set(r.serieId, { + id : r.id, + status : r.status, + seasons : me.seasons, + episodes: me.episodes ?? [], + }) + } + const results = all .filter(s => !q || s.title?.toLowerCase().includes(q) || s.original_title?.toLowerCase().includes(q)) .slice(0, 50) @@ -93,6 +108,7 @@ router.get('/v1/series/search', requireApiToken, async (req, res) => { year : s.year ?? null, rating : s.rating?.value ?? null, description : s.plot ?? null, + request : requestMap.get(s.id) ?? null, })) res.json(results)