From 37b2ac974b2276efd13538c127ba5ddda2537fe3 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Tue, 18 Apr 2023 18:17:10 +0200 Subject: [PATCH] Added pagination for get all scans ref #205 --- src/controllers/ScanController.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/controllers/ScanController.ts b/src/controllers/ScanController.ts index 847d033..3a7652e 100644 --- a/src/controllers/ScanController.ts +++ b/src/controllers/ScanController.ts @@ -34,9 +34,14 @@ export class ScanController { @ResponseSchema(ResponseScan, { isArray: true }) @ResponseSchema(ResponseTrackScan, { isArray: true }) @OpenAPI({ description: 'Lists all scans (normal or track) from all runners.
This includes the scan\'s runner\'s distance ran.' }) - async getAll() { + async getAll(@QueryParam("page", { required: false }) page: number, @QueryParam("page_size", { required: false }) page_size: number = 100) { let responseScans: ResponseScan[] = new Array(); - const scans = await this.scanRepository.find({ relations: ['runner', 'track'] }); + let scans: Array; + if (page) { + scans = await this.scanRepository.find({ relations: ['runner', 'track'], skip: page * page_size, take: page_size }); + } else { + scans = await this.scanRepository.find({ relations: ['runner', 'track'] }); + } scans.forEach(scan => { responseScans.push(scan.toResponse()); });