From a87184924f313a8439096779fa0548b56b87e5f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Fri, 20 Sep 2024 15:30:46 +0200 Subject: [PATCH] server side --- server/vault.api.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/server/vault.api.js b/server/vault.api.js index 1507402df..3bd9f791a 100644 --- a/server/vault.api.js +++ b/server/vault.api.js @@ -29,6 +29,13 @@ const rendererConditions = (legacy, v3)=>{ return {}; // If all renderers selected, renderer field not needed in query for speed }; +const tagConditions = (tags) =>{ + if(!tags) return {}; + return { + $or: tags.map(tag => ({ tags: tag })), + } +} + const sortConditions = (sort, dir) => { return { [sort]: dir === 'asc' ? 1 : -1 @@ -41,6 +48,7 @@ const findBrews = async (req, res)=>{ const page = Math.max(parseInt(req.query.page) || 1, 1); const count = Math.max(parseInt(req.query.count) || 20, 10); const skip = (page - 1) * count; + const tags = req.query.tags || []; const sort = req.query.sort || 'title'; const dir = req.query.dir || 'asc'; @@ -49,6 +57,7 @@ const findBrews = async (req, res)=>{ { published: true }, rendererConditions(req.query.legacy, req.query.v3), titleConditions(title), + tagConditions(tags), authorConditions(author) ], }; @@ -85,13 +94,15 @@ const findBrews = async (req, res)=>{ const findTotal = async (req, res)=>{ const title = req.query.title || ''; const author = req.query.author || ''; + const tags = req.query.tags || []; const combinedQuery = { $and : [ { published: true }, rendererConditions(req.query.legacy, req.query.v3), titleConditions(title), - authorConditions(author) + authorConditions(author), + tagConditions(tags) ], };