Skip to content

Commit d6f3110

Browse files
committed
Change ResourceResolver to handle DB names
1 parent db10842 commit d6f3110

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

src/core/resources/resource-resolver.service.ts

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { ID, many, Many, ObjectView, ServerException, Session } from '~/common';
77
import { BaseNode } from '../database/results';
88
import { ILogger, Logger } from '../logger';
99
import { ResourceMap } from './map';
10+
import { ResourcesHost } from './resources.host';
1011

1112
const RESOLVE_BY_ID = 'RESOLVE_BY_ID';
1213
interface Shape {
@@ -48,6 +49,7 @@ export class ResourceResolver {
4849

4950
constructor(
5051
private readonly discover: DiscoveryService,
52+
private readonly resourcesHost: ResourcesHost,
5153
private readonly schemaHost: GraphQLSchemaHost,
5254
@Logger('resource-resolver') private readonly logger: ILogger,
5355
) {}
@@ -144,13 +146,19 @@ export class ResourceResolver {
144146
const names = many(types).map((t) => t.replace(/^Deleted_/, ''));
145147

146148
const schema = this.schemaHost.schema;
147-
const resolved = names.filter(
148-
(name) => schema.getType(name) instanceof GraphQLObjectType,
149-
);
149+
const resolved = names
150+
.flatMap((name) => {
151+
try {
152+
return this.resourcesHost.getByDynamicName(name).name;
153+
} catch (e) {
154+
// Ignore names/`labels` that don't have corresponding resources.
155+
return [];
156+
}
157+
})
158+
.filter((name) => schema.getType(name) instanceof GraphQLObjectType);
150159

151160
if (resolved.length === 1) {
152-
// This is mostly true...
153-
return resolved[0] as keyof ResourceMap;
161+
return resolved[0];
154162
}
155163

156164
const namesStr = names.join(', ');

0 commit comments

Comments
 (0)