From a6afba93e243ca419c282a16cad023d06d864e0e Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Tue, 8 Apr 2025 21:15:41 +0200 Subject: [PATCH] feat(stats): Publish runners by kiosk stat --- src/controllers/StatsController.ts | 3 ++- src/models/responses/ResponseStats.ts | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/controllers/StatsController.ts b/src/controllers/StatsController.ts index 7994356..b8269f6 100644 --- a/src/controllers/StatsController.ts +++ b/src/controllers/StatsController.ts @@ -24,6 +24,7 @@ export class StatsController { async get() { const connection = getConnection(); const runnersViaSelfservice = await connection.getRepository(Runner).count({ where: { created_via: "selfservice" } }); + const runnersViaKiosk = await connection.getRepository(Runner).count({ where: { created_via: "kiosk" } }); const runners = await connection.getRepository(Runner).count(); const teams = await connection.getRepository(RunnerTeam).count(); const orgs = await connection.getRepository(RunnerOrganization).count(); @@ -42,7 +43,7 @@ export class StatsController { let donations = await connection.getRepository(Donation).find({ relations: ['runner', 'runner.scans', 'runner.scans.track'] }); const donors = await connection.getRepository(Donor).count(); - return new ResponseStats(runnersViaSelfservice, runners, teams, orgs, users, scans, donations, distace, donors) + return new ResponseStats(runnersViaSelfservice, runners, teams, orgs, users, scans, donations, distace, donors, runnersViaKiosk) } @Get("/runners/distance") diff --git a/src/models/responses/ResponseStats.ts b/src/models/responses/ResponseStats.ts index 2cafd46..6b2e6a0 100644 --- a/src/models/responses/ResponseStats.ts +++ b/src/models/responses/ResponseStats.ts @@ -22,6 +22,12 @@ export class ResponseStats implements IResponse { @IsInt() runnersViaSelfservice: number; + /** + * The amount of runners registered via kiosk. + */ + @IsInt() + runnersViaKiosk: number; + /** * The amount of runners registered in the system. */ @@ -98,7 +104,7 @@ export class ResponseStats implements IResponse { * @param scans number of scans - no relations have to be resolved. * @param donations Array containing all donations - the following relations have to be resolved: runner, runner.scans, runner.scans.track */ - public constructor(runnersViaSelfservice: number, runners: number, teams: number, orgs: number, users: number, scans: number, donations: Donation[], distance: number, donors: number) { + public constructor(runnersViaSelfservice: number, runners: number, teams: number, orgs: number, users: number, scans: number, donations: Donation[], distance: number, donors: number, runnersViaKiosk: number) { this.runnersViaSelfservice = runnersViaSelfservice; this.total_runners = runners; this.total_teams = teams; @@ -111,5 +117,6 @@ export class ResponseStats implements IResponse { this.average_donation = this.total_donation / this.total_donations this.total_donors = donors; this.average_distance = this.total_distance / this.total_runners; + this.runnersViaKiosk = runnersViaKiosk; } }