feat(groups): Resolve the total group distance on group get single (aka get org and get team)
This commit is contained in:
parent
4608a36df6
commit
245827e9c6
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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) }
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue