feat(runners): Include collected distance donation amount in runner detail
This commit is contained in:
parent
f4747c51de
commit
4494afc64b
@ -60,7 +60,7 @@ export class RunnerController {
|
|||||||
@OnUndefined(RunnerNotFoundError)
|
@OnUndefined(RunnerNotFoundError)
|
||||||
@OpenAPI({ description: 'Lists all information about the runner whose id got provided.' })
|
@OpenAPI({ description: 'Lists all information about the runner whose id got provided.' })
|
||||||
async getOne(@Param('id') id: number) {
|
async getOne(@Param('id') id: number) {
|
||||||
let runner = await this.runnerRepository.findOne({ id: id }, { relations: ['scans', 'group', 'group.parentGroup', 'scans.track', 'cards'] })
|
let runner = await this.runnerRepository.findOne({ id: id }, { relations: ['scans', 'group', 'group.parentGroup', 'scans.track', 'cards', 'distanceDonations'] })
|
||||||
if (!runner) { throw new RunnerNotFoundError(); }
|
if (!runner) { throw new RunnerNotFoundError(); }
|
||||||
return new ResponseRunner(runner, true);
|
return new ResponseRunner(runner, true);
|
||||||
}
|
}
|
||||||
|
@ -27,6 +27,13 @@ export class ResponseRunner extends ResponseParticipant implements IResponse {
|
|||||||
@IsInt()
|
@IsInt()
|
||||||
distance: number;
|
distance: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The runner's current donation amount based on distance.
|
||||||
|
* Only available for queries for single runners.
|
||||||
|
*/
|
||||||
|
@IsInt()
|
||||||
|
donationAmount: number;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The runner's group.
|
* The runner's group.
|
||||||
*/
|
*/
|
||||||
@ -50,6 +57,10 @@ export class ResponseRunner extends ResponseParticipant implements IResponse {
|
|||||||
else { this.distance = runner.validScans.reduce((sum, current) => sum + current.distance, 0); }
|
else { this.distance = runner.validScans.reduce((sum, current) => sum + current.distance, 0); }
|
||||||
if (runner.group) { this.group = runner.group.toResponse(); }
|
if (runner.group) { this.group = runner.group.toResponse(); }
|
||||||
|
|
||||||
|
if (runner.distanceDonations) {
|
||||||
|
this.donationAmount = runner.distanceDonations.reduce((sum, current) => sum + (current.amountPerDistance * runner.distance / 1000), 0);
|
||||||
|
}
|
||||||
|
|
||||||
if (generateSelfServiceLink) {
|
if (generateSelfServiceLink) {
|
||||||
const token = JwtCreator.createSelfService(runner);
|
const token = JwtCreator.createSelfService(runner);
|
||||||
this.selfserviceLink = `${process.env.SELFSERVICE_URL}/profile/${token}`;
|
this.selfserviceLink = `${process.env.SELFSERVICE_URL}/profile/${token}`;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user