| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -30,6 +30,7 @@ export class StatsController {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            "total_scans": scans.filter(scan => { scan.valid === true }).length,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            "total_distance": runners.reduce((sum, current) => sum + current.distance, 0),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            "total_donation_amount": donations.reduce((sum, current) => sum + current.amount, 0),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            "average_distance": runners.reduce((sum, current) => sum + current.distance, 0) / runners.length,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        };
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -37,8 +38,7 @@ export class StatsController {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    @UseBefore(StatsAuth)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    @OpenAPI({ description: "Returns the top ten runners by distance.", security: [{ "StatsApiToken": [] }] })
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    async getTopRunnersByDistance() {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        let connection = getConnection();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        let runners = await connection.getRepository(Runner).find({ relations: ["scans"] });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        let runners = await getConnection().getRepository(Runner).find({ relations: ["scans"] });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        return runners.sort((runner1, runner2) => runner1.distance - runner2.distance).slice(0, 9);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -46,21 +46,24 @@ export class StatsController {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    @UseBefore(StatsAuth)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    @OpenAPI({ description: "Returns the top ten runners by donations.", security: [{ "StatsApiToken": [] }] })
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    async getTopRunnersByDonations() {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        throw new Error("Not implemented yet.")
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        let runners = await getConnection().getRepository(Runner).find({ relations: ["scans", "distanceDonations"] });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        return runners.sort((runner1, runner2) => runner1.distanceDonationAmount - runner2.distanceDonationAmount).slice(0, 9);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    @Get("/teams/distance")
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    @UseBefore(StatsAuth)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    @OpenAPI({ description: "Returns the top ten teams by distance.", security: [{ "StatsApiToken": [] }] })
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    async getTopTeamsByDistance() {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        throw new Error("Not implemented yet.")
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        let teams = await getConnection().getRepository(RunnerTeam).find({ relations: ["runners", "runners.scans"] });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        return teams.sort((team1, team2) => team1.distance - team2.distance).slice(0, 9);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    @Get("/teams/donations")
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    @UseBefore(StatsAuth)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    @OpenAPI({ description: "Returns the top ten teams by donations.", security: [{ "StatsApiToken": [] }] })
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    async getTopTeamsByDonations() {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        throw new Error("Not implemented yet.")
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        let teams = await getConnection().getRepository(RunnerTeam).find({ relations: ["runners", "runners.scans", "runners.distanceDonations"] });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        return teams.sort((team1, team2) => team1.distanceDonationAmount - team2.distanceDonationAmount).slice(0, 9);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    @Get("/organisations/distance")
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				 
 |