From cb71fcd13bc61e6214e2fd7b70e72094749463d3 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Tue, 6 Apr 2021 08:13:43 +0200 Subject: [PATCH] Added basic laptime endpoint ref #190 --- src/controllers/StatsController.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/controllers/StatsController.ts b/src/controllers/StatsController.ts index 416f907..8658ba6 100644 --- a/src/controllers/StatsController.ts +++ b/src/controllers/StatsController.ts @@ -58,6 +58,20 @@ export class StatsController { return responseRunners; } + @Get("/runners/laptime") + @UseBefore(StatsAuth) + @ResponseSchema(ResponseStatsRunner, { isArray: true }) + @OpenAPI({ description: "Returns the top ten runners by fastest laptime.", security: [{ "StatsApiToken": [] }, { "AuthToken": [] }, { "RefreshTokenCookie": [] }] }) + async getTopRunnersByLaptime() { + let runners = await getConnection().getRepository(Runner).find({ relations: ['scans', 'group', 'scans.track'] }); + let topRunners = runners.sort((runner1, runner2) => runner1.distanceDonationAmount - runner2.distanceDonationAmount).slice(0, 10); + let responseRunners: ResponseStatsRunner[] = new Array(); + topRunners.forEach(runner => { + responseRunners.push(new ResponseStatsRunner(runner)); + }); + return responseRunners; + } + @Get("/scans") @UseBefore(StatsAuth) @ResponseSchema(ResponseStatsRunner, { isArray: true })