From 06ff0c2ef95f0aa7ca2a10bb848f3c665ebba22c Mon Sep 17 00:00:00 2001 From: Brainslug Date: Tue, 2 May 2023 12:34:50 +0200 Subject: [PATCH] Fixes _offset=0 in deep filters (#18382) --- .changeset/wise-chefs-love.md | 5 +++++ api/src/utils/sanitize-query.test.ts | 12 ++++++++++-- api/src/utils/sanitize-query.ts | 2 +- 3 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 .changeset/wise-chefs-love.md diff --git a/.changeset/wise-chefs-love.md b/.changeset/wise-chefs-love.md new file mode 100644 index 0000000000..604a01271a --- /dev/null +++ b/.changeset/wise-chefs-love.md @@ -0,0 +1,5 @@ +--- +"@directus/api": patch +--- + +Fixed _offset=0 usage in deep filters diff --git a/api/src/utils/sanitize-query.test.ts b/api/src/utils/sanitize-query.test.ts index ad63f2e9ee..d134ebf800 100644 --- a/api/src/utils/sanitize-query.test.ts +++ b/api/src/utils/sanitize-query.test.ts @@ -166,12 +166,20 @@ describe('offset', () => { expect(sanitizedQuery.offset).toBe(1); }); - test('should ignore zero', () => { + test('should accept zero #18370', () => { const offset = 0; const sanitizedQuery = sanitizeQuery({ offset }); - expect(sanitizedQuery.offset).toBeUndefined(); + expect(sanitizedQuery.offset).toBe(0); + }); + + test('should accept string zero #18370', () => { + const offset = '0'; + + const sanitizedQuery = sanitizeQuery({ offset }); + + expect(sanitizedQuery.offset).toBe(0); }); }); diff --git a/api/src/utils/sanitize-query.ts b/api/src/utils/sanitize-query.ts index c51436e531..7a87e6acdd 100644 --- a/api/src/utils/sanitize-query.ts +++ b/api/src/utils/sanitize-query.ts @@ -35,7 +35,7 @@ export function sanitizeQuery(rawQuery: Record, accountability?: Ac query.filter = sanitizeFilter(rawQuery['filter'], accountability || null); } - if (rawQuery['offset']) { + if (rawQuery['offset'] !== undefined) { query.offset = sanitizeOffset(rawQuery['offset']); }