Fixed sorting algo

ref #190
This commit is contained in:
Nicolai Ort 2021-04-06 08:56:34 +02:00
parent 4471e57438
commit 988f17a795
1 changed files with 9 additions and 10 deletions

View File

@ -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<TrackScan>();
let knownRunners = new Array<Runner>();
let knownRunners = new Array<number>();
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<ResponseStatsRunner>();
topScans.forEach(scan => {
responseRunners.push(new ResponseStatsRunner(scan.runner, scan.lapTime));
});
return responseRunners;
// let responseRunners: ResponseStatsRunner[] = new Array<ResponseStatsRunner>();
// topScans.forEach(scan => {
// responseRunners.push(new ResponseStatsRunner(scan.runner, scan.lapTime));
// });
return topScans;
}
@Get("/scans")