From 5b4210bb38655f10174558ae93f287a4a6775c5e Mon Sep 17 00:00:00 2001 From: Uwe Klinger Date: Wed, 19 May 2021 11:37:04 +0200 Subject: [PATCH] Use "db" service to avoid double call of service handlers --- notes/srv/RemoteHandler.js | 6 ++++-- test/notes.test.js | 8 +++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/notes/srv/RemoteHandler.js b/notes/srv/RemoteHandler.js index 8b1cceee..190b524f 100644 --- a/notes/srv/RemoteHandler.js +++ b/notes/srv/RemoteHandler.js @@ -36,7 +36,7 @@ class RemoteHandler { } serviceFor(entityName) { - return this.remoteEntities[entityName] || this.service; + return this.remoteEntities[entityName] || cds.db; } /** @@ -75,6 +75,7 @@ class RemoteHandler { const targetService = this.serviceFor(target.name); // Select target + // REVISIT: const targetResult = await targetService.read(target.name).where({ [targetKeyFieldName]: ids }).columns(expandColumns); const targetQuery = SELECT.from(target.name) .where({ [targetKeyFieldName]: ids }) .columns(expandColumns); @@ -166,6 +167,7 @@ class RemoteHandler { const entry = await sourceService.run(selectEntry); // REVISIT: How to call service datasource w/o handlers + // REVISIT: const result = await targetService.read(target).columns(req.query.SELECT.columns).where({ [targetKeyFieldName]: entry[keyFieldName] }); // TODO: Seems not to respect filter for targetkeyFieldName const selectTarget = SELECT(req.query.SELECT.columns) .from(target) @@ -197,7 +199,7 @@ class RemoteHandler { } isRemote(entityName) { - return this.serviceFor(entityName) !== this.service; + return this.serviceFor(entityName) !== cds.db; } isSeparated(entityNameA, entityNameB) { diff --git a/test/notes.test.js b/test/notes.test.js index 14b2c30f..8fa932a8 100644 --- a/test/notes.test.js +++ b/test/notes.test.js @@ -228,8 +228,9 @@ describe("Notes", () => { }); }); - // TODO: Seems not to respect filter for targetkeyFieldName -/* + // TODO: Seems not to respect filter for targetKeyFieldName + /* + it.only("get supplier via navigation", async () => { const { status, data } = await GET("/notes/Notes(545A3CF9-84CF-46C8-93DC-E29F0F2BC6BE)/supplier"); expect({ status, data }).to.containSubset({ @@ -237,7 +238,8 @@ describe("Notes", () => { data: envelope("Suppliers", NotesExpandSuppliers[0].supplier ) }); }); -*/ + */ + after(() => mockServer.close()); });