diff --git a/src/controllers/StatsController.ts b/src/controllers/StatsController.ts index abfe16d..6be74f2 100644 --- a/src/controllers/StatsController.ts +++ b/src/controllers/StatsController.ts @@ -21,18 +21,22 @@ export class StatsController { @ResponseSchema(ResponseStats) @OpenAPI({ description: "A very basic stats endpoint providing basic counters for a dashboard or simmilar" }) async get() { - let connection = getConnection(); - let runners = await connection.getRepository(Runner).count(); - let teams = await connection.getRepository(RunnerTeam).count(); - let orgs = await connection.getRepository(RunnerOrganization).count(); - let users = await connection.getRepository(User).count(); - let scans = await connection.getRepository(Scan).count({ where: { valid: true } }); - let distance_query = await connection.getRepository(Scan).createQueryBuilder('scan') + const connection = getConnection(); + const runners = await connection.getRepository(Runner).count(); + const teams = await connection.getRepository(RunnerTeam).count(); + const orgs = await connection.getRepository(RunnerOrganization).count(); + const users = await connection.getRepository(User).count(); + const scans = await connection.getRepository(Scan).count({ where: { valid: true } }); + const distance_query = await connection.getRepository(Scan).createQueryBuilder('scan') .leftJoinAndSelect("scan.track", "track").where("scan.valid = TRUE") .select("SUM(track.distance)", "sum_track").addSelect("SUM(_distance)", "sum_distance") .getRawOne(); + let distace = parseInt(distance_query.sum_track) + if (distance_query.sum_distance) { + distace += parseInt(distance_query.sum_distance) + } let donations = await connection.getRepository(Donation).find({ relations: ['runner', 'runner.scans', 'runner.scans.track'] }); - return new ResponseStats(runners, teams, orgs, users, scans, donations, distance_query.sum_track + distance_query.sum_distance) + return new ResponseStats(runners, teams, orgs, users, scans, donations, distace) } @Get("/runners/distance")