diff --git a/src/controllers/RunnerOrganizationController.ts b/src/controllers/RunnerOrganizationController.ts index e03e411..065cadd 100644 --- a/src/controllers/RunnerOrganizationController.ts +++ b/src/controllers/RunnerOrganizationController.ts @@ -62,13 +62,13 @@ export class RunnerOrganizationController { @ResponseSchema(ResponseRunner, { isArray: true }) @ResponseSchema(RunnerOrganizationNotFoundError, { statusCode: 404 }) @OpenAPI({ description: 'Lists all runners from this org and it\'s teams (if you don\'t provide the ?onlyDirect=true param).
This includes the runner\'s group and distance ran.' }) - async getRunners(@Param('id') id: number, @QueryParam('onlyDirect') onlyDirect: boolean) { + async getRunners(@Param('id') id: number, @QueryParam('onlyDirect') onlyDirect: boolean, @QueryParam("selfservice_links", { required: false }) selfservice_links: boolean = false) { let responseRunners: ResponseRunner[] = new Array(); let runners: Runner[]; if (!onlyDirect) { runners = (await this.runnerOrganizationRepository.findOne({ id: id }, { relations: ['runners', 'runners.group', 'runners.group.parentGroup', 'runners.scans', 'runners.scans.track', 'teams', 'teams.runners', 'teams.runners.group', 'teams.runners.group.parentGroup', 'teams.runners.scans', 'teams.runners.scans.track'] })).allRunners; } else { runners = (await this.runnerOrganizationRepository.findOne({ id: id }, { relations: ['runners', 'runners.group', 'runners.group.parentGroup', 'runners.scans', 'runners.scans.track'] })).runners; } runners.forEach(runner => { - responseRunners.push(new ResponseRunner(runner)); + responseRunners.push(new ResponseRunner(runner, selfservice_links)); }); return responseRunners; } diff --git a/src/controllers/RunnerTeamController.ts b/src/controllers/RunnerTeamController.ts index ea7332d..8df5671 100644 --- a/src/controllers/RunnerTeamController.ts +++ b/src/controllers/RunnerTeamController.ts @@ -60,11 +60,11 @@ export class RunnerTeamController { @ResponseSchema(ResponseRunner, { isArray: true }) @ResponseSchema(RunnerTeamNotFoundError, { statusCode: 404 }) @OpenAPI({ description: 'Lists all runners from this team.
This includes the runner\'s group and distance ran.' }) - async getRunners(@Param('id') id: number) { + async getRunners(@Param('id') id: number, @QueryParam("selfservice_links", { required: false }) selfservice_links: boolean = false) { let responseRunners: ResponseRunner[] = new Array(); const runners = (await this.runnerTeamRepository.findOne({ id: id }, { relations: ['runners', 'runners.group', 'runners.group.parentGroup', 'runners.scans', 'runners.scans.track'] })).runners; runners.forEach(runner => { - responseRunners.push(new ResponseRunner(runner)); + responseRunners.push(new ResponseRunner(runner, selfservice_links)); }); return responseRunners; } diff --git a/src/models/entities/Runner.ts b/src/models/entities/Runner.ts index 8e5e79b..7b08593 100644 --- a/src/models/entities/Runner.ts +++ b/src/models/entities/Runner.ts @@ -84,6 +84,6 @@ export class Runner extends Participant { * Turns this entity into it's response class. */ public toResponse(): ResponseRunner { - return new ResponseRunner(this); + return new ResponseRunner(this, true); } } \ No newline at end of file