diff --git a/client/db/index.jsx b/client/db/index.jsx index 107e3c2ef..7a0e6a63d 100644 --- a/client/db/index.jsx +++ b/client/db/index.jsx @@ -305,7 +305,7 @@ function QueryForm () { { setMaxReturnLength(event.target.value); }} />
- { setSetName(event.target.value); }} /> + { setSetName(event.target.value); }} />
diff --git a/database/qbreader/get-query.js b/database/qbreader/get-query.js index 0695d2dba..16fdf4496 100644 --- a/database/qbreader/get-query.js +++ b/database/qbreader/get-query.js @@ -272,7 +272,13 @@ function buildQueryAggregation ({ query, difficulties, categories, subcategories } if (setName) { - query['set.name'] = setName; + // setName is now an array after being split by commas + if (Array.isArray(setName)) { + query['set.name'] = { $in: setName.map(name => new RegExp(name, 'i')) }; + } else { + // Backward compatibility: if setName is a string (shouldn't happen after API route change) + query['set.name'] = { $regex: setName, $options: 'i' }; + } } if (minYear && maxYear) { diff --git a/routes/api/query.js b/routes/api/query.js index 60835396b..d2968dee3 100644 --- a/routes/api/query.js +++ b/routes/api/query.js @@ -38,6 +38,10 @@ router.get('/', async (req, res) => { req.query.subcategories = req.query.subcategories.split(','); } + if (req.query.setName) { + req.query.setName = req.query.setName.split(',').map(s => s.trim()); + } + if (!req.query.tossupPagination) { req.query.tossupPagination = 1; }