From e9914e317b7fd78863cfd8549bad65da9292b7ca Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 15 Apr 2023 21:08:08 +0200 Subject: [PATCH] Faster trackscan creation by only loading the latest scan --- src/models/actions/create/CreateTrackScan.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/models/actions/create/CreateTrackScan.ts b/src/models/actions/create/CreateTrackScan.ts index a17ab12..96e82b7 100644 --- a/src/models/actions/create/CreateTrackScan.ts +++ b/src/models/actions/create/CreateTrackScan.ts @@ -86,14 +86,13 @@ export class CreateTrackScan { * @returns The validated scan with it's laptime set. */ public async validateScan(scan: TrackScan): Promise { - const scans = await getConnection().getRepository(TrackScan).find({ where: { runner: scan.runner, valid: true }, relations: ["track"] }); - if (scans.length == 0) { + const latestScan = await getConnection().getRepository(TrackScan).findOne({ where: { runner: scan.runner, valid: true }, relations: ["track"], order: { id: 'DESC' } }); + if (!latestScan) { scan.lapTime = 0; scan.valid = true; } else { - const newestScan = scans[scans.length - 1]; - scan.lapTime = scan.timestamp - newestScan.timestamp; + scan.lapTime = scan.timestamp - latestScan.timestamp; scan.valid = (scan.lapTime > scan.track.minimumLapTime); } return scan;