diff --git a/src/controllers/RunnerOrganizationController.ts b/src/controllers/RunnerOrganizationController.ts index 19cf775..7807103 100644 --- a/src/controllers/RunnerOrganizationController.ts +++ b/src/controllers/RunnerOrganizationController.ts @@ -52,7 +52,7 @@ export class RunnerOrganizationController { @OnUndefined(RunnerOrganizationNotFoundError) @OpenAPI({ description: 'Lists all information about the organization whose id got provided.' }) async getOne(@Param('id') id: number) { - let runnerOrg = await this.runnerOrganizationRepository.findOne({ id: id }, { relations: ['contact', 'teams'] }); + let runnerOrg = await this.runnerOrganizationRepository.findOne({ id: id }, { relations: ['contact', 'teams', 'runners', 'runners.scans', 'runners.scans.track'] }); if (!runnerOrg) { throw new RunnerOrganizationNotFoundError(); } return new ResponseRunnerOrganization(runnerOrg); } diff --git a/src/controllers/RunnerTeamController.ts b/src/controllers/RunnerTeamController.ts index b7536ea..17323e6 100644 --- a/src/controllers/RunnerTeamController.ts +++ b/src/controllers/RunnerTeamController.ts @@ -50,7 +50,7 @@ export class RunnerTeamController { @OnUndefined(RunnerTeamNotFoundError) @OpenAPI({ description: 'Lists all information about the team whose id got provided.' }) async getOne(@Param('id') id: number) { - let runnerTeam = await this.runnerTeamRepository.findOne({ id: id }, { relations: ['parentGroup', 'contact'] }); + let runnerTeam = await this.runnerTeamRepository.findOne({ id: id }, { relations: ['parentGroup', 'contact', 'runners', 'runners.scans', 'runners.scans.track'] }); if (!runnerTeam) { throw new RunnerTeamNotFoundError(); } return new ResponseRunnerTeam(runnerTeam); } diff --git a/src/models/responses/ResponseRunnerGroup.ts b/src/models/responses/ResponseRunnerGroup.ts index b841218..07a8a71 100644 --- a/src/models/responses/ResponseRunnerGroup.ts +++ b/src/models/responses/ResponseRunnerGroup.ts @@ -1,4 +1,4 @@ -import { IsInt, IsNotEmpty, IsObject, IsOptional, IsString } from "class-validator"; +import { IsInt, IsNotEmpty, IsNumber, IsObject, IsOptional, IsString } from "class-validator"; import { RunnerGroup } from '../entities/RunnerGroup'; import { ResponseObjectType } from '../enums/ResponseObjectType'; import { IResponse } from './IResponse'; @@ -36,6 +36,10 @@ export abstract class ResponseRunnerGroup implements IResponse { @IsOptional() contact?: ResponseGroupContact; + @IsOptional() + @IsNumber() + total_distance: number + /** * Creates a ResponseRunnerGroup object from a runnerGroup. * @param group The runnerGroup the response shall be build for. @@ -44,5 +48,7 @@ export abstract class ResponseRunnerGroup implements IResponse { this.id = group.id; this.name = group.name; if (group.contact) { this.contact = group.contact.toResponse(); }; + console.log(group.runners) + if (group.runners) { this.total_distance = group.runners.reduce((p, c) => p + c.distance, 0) } } }