From b35a2dd2fab708253373b3326f11ab574be18371 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Tue, 18 Apr 2023 18:27:11 +0200 Subject: [PATCH] Added pagination for runnercards ref #205 --- src/controllers/RunnerCardController.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/controllers/RunnerCardController.ts b/src/controllers/RunnerCardController.ts index f671569..e4e246e 100644 --- a/src/controllers/RunnerCardController.ts +++ b/src/controllers/RunnerCardController.ts @@ -26,9 +26,16 @@ export class RunnerCardController { @Authorized("CARD:GET") @ResponseSchema(ResponseRunnerCard, { isArray: true }) @OpenAPI({ description: 'Lists all card.' }) - async getAll() { + async getAll(@QueryParam("page", { required: false }) page: number, @QueryParam("page_size", { required: false }) page_size: number = 100) { let responseCards: ResponseRunnerCard[] = new Array(); - const cards = await this.cardRepository.find({ relations: ['runner', 'runner.group', 'runner.group.parentGroup'] }); + let cards: Array; + + if (page) { + cards = await this.cardRepository.find({ relations: ['runner', 'runner.group', 'runner.group.parentGroup'], skip: page * page_size, take: page_size }); + } else { + cards = await this.cardRepository.find({ relations: ['runner', 'runner.group', 'runner.group.parentGroup'] }); + } + cards.forEach(card => { responseCards.push(new ResponseRunnerCard(card)); });