diff --git a/src/routes/index.ts b/src/routes/index.ts index e071caf7..6834a95d 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) {