From 7be2971a9e02bf0e784f7fe5cdd82afbbbf7f854 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Tue, 26 Jan 2021 19:57:35 +0100 Subject: [PATCH] Created the runnerTeam/runners endpoint ref #125 --- src/controllers/RunnerTeamController.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/controllers/RunnerTeamController.ts b/src/controllers/RunnerTeamController.ts index e4952ac..420cfce 100644 --- a/src/controllers/RunnerTeamController.ts +++ b/src/controllers/RunnerTeamController.ts @@ -6,6 +6,7 @@ import { CreateRunnerTeam } from '../models/actions/create/CreateRunnerTeam'; import { UpdateRunnerTeam } from '../models/actions/update/UpdateRunnerTeam'; import { RunnerTeam } from '../models/entities/RunnerTeam'; import { ResponseEmpty } from '../models/responses/ResponseEmpty'; +import { ResponseRunner } from '../models/responses/ResponseRunner'; import { ResponseRunnerTeam } from '../models/responses/ResponseRunnerTeam'; import { RunnerController } from './RunnerController'; @@ -47,6 +48,20 @@ export class RunnerTeamController { return new ResponseRunnerTeam(runnerTeam); } + @Get('/:id/runners') + @Authorized(["RUNNER:GET", "SCAN:GET"]) + @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) { + let responseRunners: ResponseRunner[] = new Array(); + const runners = (await this.runnerTeamRepository.findOne({ id: id }, { relations: ['runners', 'runners.group', 'runners.scans', 'runners.scans.track'] })).runners; + runners.forEach(runner => { + responseRunners.push(new ResponseRunner(runner)); + }); + return responseRunners; + } + @Post() @Authorized("TEAM:CREATE") @ResponseSchema(ResponseRunnerTeam)