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']); }