From 8a6d8329f337ae66363f23ac11a822c1ec1a44e8 Mon Sep 17 00:00:00 2001 From: dswbx Date: Thu, 16 Jan 2025 17:25:19 +0100 Subject: [PATCH] refactor for better precision --- app/__test__/api/DataApi.spec.ts | 4 ++-- app/src/data/api/DataApi.ts | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/__test__/api/DataApi.spec.ts b/app/__test__/api/DataApi.spec.ts index 4fee5d9..706a59d 100644 --- a/app/__test__/api/DataApi.spec.ts +++ b/app/__test__/api/DataApi.spec.ts @@ -5,9 +5,9 @@ describe("DataApi", () => { it("should switch to post for long url reads", async () => { const api = new DataApi(); - const get = api.readMany("a".repeat(100), { select: ["id", "name"] }); + const get = api.readMany("a".repeat(300), { select: ["id", "name"] }); expect(get.request.method).toBe("GET"); - expect(new URL(get.request.url).pathname).toBe(`/api/data/${"a".repeat(100)}`); + expect(new URL(get.request.url).pathname).toBe(`/api/data/${"a".repeat(300)}`); const post = api.readMany("a".repeat(1000), { select: ["id", "name"] }); expect(post.request.method).toBe("POST"); diff --git a/app/src/data/api/DataApi.ts b/app/src/data/api/DataApi.ts index 64eb9af..e444092 100644 --- a/app/src/data/api/DataApi.ts +++ b/app/src/data/api/DataApi.ts @@ -33,13 +33,13 @@ export class DataApi extends ModuleApi { type T = Pick, "meta" | "data">; const input = query ?? this.options.defaultQuery; - const exceeds = JSON.stringify([entity, input]).length > this.options.queryLengthLimit; + const req = this.get([entity as any], input); - if (exceeds) { - return this.post([entity as any, "query"], input); + if (req.request.url.length <= this.options.queryLengthLimit) { + return req; } - return this.get([entity as any], input); + return this.post([entity as any, "query"], input); } readManyByReference<