Skip to content

Commit 14fd00e

Browse files
committed
implement sparse fields for relationships, add more tests
1 parent ed379e5 commit 14fd00e

2 files changed

Lines changed: 375 additions & 1116 deletions

File tree

packages/server/src/api/rest/index.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -585,7 +585,14 @@ class RequestHandler extends APIHandlerBase {
585585
select = relationSelect;
586586
}
587587

588-
select = select ?? { [relationship]: true };
588+
// handle partial results for requested type
589+
if (!select) {
590+
const { select: partialFields, error } = this.buildPartialSelect(lowerCaseFirst(relationInfo.type), query);
591+
if (error) return error;
592+
593+
select = partialFields ? { [relationship]: { select: { ...partialFields } } } : { [relationship]: true };
594+
}
595+
589596
const args: any = {
590597
where: this.makePrismaIdFilter(typeInfo.idFields, resourceId),
591598
select,
@@ -772,8 +779,6 @@ class RequestHandler extends APIHandlerBase {
772779
} else {
773780
args.take = limit;
774781

775-
console.log('args', JSON.stringify(args));
776-
777782
const [entities, count] = await Promise.all([
778783
prisma[type].findMany(args),
779784
prisma[type].count({ where: args.where ?? {} }),
@@ -1905,8 +1910,6 @@ class RequestHandler extends APIHandlerBase {
19051910
}
19061911
}
19071912

1908-
console.log('relation select:', JSON.stringify({ select: result, error: undefined, allIncludes }));
1909-
19101913
return { select: result, error: undefined, allIncludes };
19111914
}
19121915

0 commit comments

Comments
 (0)