Use "db" service to avoid double call of service handlers

This commit is contained in:
Uwe Klinger
2021-05-19 11:37:04 +02:00
parent 48ee934b00
commit 5b4210bb38
2 changed files with 9 additions and 5 deletions

View File

@@ -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) {

View File

@@ -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());
});