From 988f17a795bb2d867e9d1d8e78051dff1a14ec30 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Tue, 6 Apr 2021 08:56:34 +0200 Subject: [PATCH] Fixed sorting algo ref #190 --- src/controllers/StatsController.ts | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/controllers/StatsController.ts b/src/controllers/StatsController.ts index 829358a..09c6efc 100644 --- a/src/controllers/StatsController.ts +++ b/src/controllers/StatsController.ts @@ -65,23 +65,22 @@ export class StatsController { @OpenAPI({ description: "Returns the top ten runners by fastest laptime on your selected track (track by id).", security: [{ "StatsApiToken": [] }, { "AuthToken": [] }, { "RefreshTokenCookie": [] }] }) async getTopRunnersByLaptime(@QueryParam("track") track: number) { let scans = await getConnection().getRepository(TrackScan).find({ relations: ['runner', 'runner.group', 'track'] }); - scans = scans.filter((s) => { s.track.id == track && s.valid == true }) - console.log(scans) + scans = scans.filter((s) => { return s.track.id == track && s.valid == true && s.lapTime != 0 }).sort((scan1, scan2) => scan1.lapTime - scan2.lapTime); let topScans = new Array(); - let knownRunners = new Array(); + let knownRunners = new Array(); for (let i = 0; i < scans.length && topScans.length < 10; i++) { const element = scans[i]; - if (!knownRunners.includes(element.runner)) { + if (!knownRunners.includes(element.runner.id)) { topScans.push(element); - knownRunners.push(element.runner); + knownRunners.push(element.runner.id); } } - let responseRunners: ResponseStatsRunner[] = new Array(); - topScans.forEach(scan => { - responseRunners.push(new ResponseStatsRunner(scan.runner, scan.lapTime)); - }); - return responseRunners; + // let responseRunners: ResponseStatsRunner[] = new Array(); + // topScans.forEach(scan => { + // responseRunners.push(new ResponseStatsRunner(scan.runner, scan.lapTime)); + // }); + return topScans; } @Get("/scans")