From 252efa39506337a4dbfee60b027f35f3558149b3 Mon Sep 17 00:00:00 2001 From: GeorgeWebberley Date: Sun, 1 Mar 2026 12:48:17 +0100 Subject: [PATCH] Added additional endpoint to demonstrate pagination --- src/cases/cases.resolver.ts | 10 ++++++++++ src/cases/cases.service.ts | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/cases/cases.resolver.ts b/src/cases/cases.resolver.ts index 9471043..cbd58d3 100644 --- a/src/cases/cases.resolver.ts +++ b/src/cases/cases.resolver.ts @@ -49,4 +49,14 @@ export class CasesResolver { return this.casesService.processAndSave(buffer, mimetype, filename); } + + // An additional simple fetch all endpoint to demonstrate pagination + @Query(() => [CaseLaw], { name: 'caseLaws' }) + async findAll( + @Args('status', { type: () => CaseStatus, nullable: true }) status?: CaseStatus, + @Args('take', { type: () => Int, nullable: true, defaultValue: 20 }) take?: number, + @Args('skip', { type: () => Int, nullable: true, defaultValue: 0 }) skip?: number, + ) { + return this.casesService.findAll(status, take, skip); + } } diff --git a/src/cases/cases.service.ts b/src/cases/cases.service.ts index 7d4ad2f..b53a6c4 100644 --- a/src/cases/cases.service.ts +++ b/src/cases/cases.service.ts @@ -58,4 +58,14 @@ export class CasesService { if (!caseLaw) throw new NotFoundException('Case not found'); return caseLaw; } + + + async findAll(status?: CaseStatus, take = 20, skip = 0) { + return this.prisma.caseLaw.findMany({ + where: status ? { status } : undefined, + orderBy: { createdAt: 'desc' }, + take: Math.min(take, 100), + skip, + }); + } } \ No newline at end of file