Added pagination for get all scans

ref #205
This commit is contained in:
Nicolai Ort 2023-04-18 18:17:10 +02:00
parent 81aed1de40
commit 37b2ac974b
Signed by: niggl
GPG Key ID: 13AFA55AF62F269F

View File

@ -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. <br> 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<ResponseScan>();
const scans = await this.scanRepository.find({ relations: ['runner', 'track'] });
let scans: Array<Scan>;
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());
});