|  |  |  | @@ -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") | 
		
	
	
		
			
				
					
					|  |  |  |   |