From 97591b5507fabfcabad1a629004e722b22e4781e Mon Sep 17 00:00:00 2001 From: majkus522 Date: Tue, 7 Jan 2025 16:20:33 +0100 Subject: [PATCH] Add negative filters --- src/routes/index.ts | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/src/routes/index.ts b/src/routes/index.ts index e071caf74..6834a95db 100644 --- a/src/routes/index.ts +++ b/src/routes/index.ts @@ -41,20 +41,30 @@ router.get('/:type*/all', async (ctx) => { ctx.body = entityObjects.filter((entity) => { if (!entity) return; - for (const key of Object.keys(params)) { - const value = entity[key]; - - switch (typeof value) { - case 'string': - if (!value.includes(params[key] as string)) return false; - break; - default: - if (value != params[key]) return false; - break; + let negativeFilter = key.endsWith('!'); + const value = entity[key.replace('!', '')]; + if (negativeFilter) { + switch (typeof value) { + case 'string': + if (value.includes(params[key] as string)) return false; + break; + default: + console.log(value, params[key]); + if (value == params[key]) return false; + break; + } + } else { + switch (typeof value) { + case 'string': + if (!value.includes(params[key] as string)) return false; + break; + default: + if (value != params[key]) return false; + break; + } } } - return true; }); } catch (e) {