From d70c5b1bbc9f02782f8755b6929e2d3458e10221 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 3 Apr 2021 17:05:10 +0200 Subject: [PATCH 1/4] New class: ResponseSelfServiceDonor ref #187 --- .../responses/ResponseSelfServiceDonor.ts | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/models/responses/ResponseSelfServiceDonor.ts diff --git a/src/models/responses/ResponseSelfServiceDonor.ts b/src/models/responses/ResponseSelfServiceDonor.ts new file mode 100644 index 0000000..9be0212 --- /dev/null +++ b/src/models/responses/ResponseSelfServiceDonor.ts @@ -0,0 +1,51 @@ +import { IsInt, IsString } from "class-validator"; +import { Donor } from '../entities/Donor'; +import { ResponseObjectType } from '../enums/ResponseObjectType'; +import { IResponse } from './IResponse'; + +/** + * Defines the donor selfservice response. + * Why? B/C runner's are not allowed to view all information available to admin users. +*/ +export class ResponseSelfServiceDonor implements IResponse { + /** + * The responseType. + * This contains the type of class/entity this response contains. + */ + responseType: ResponseObjectType = ResponseObjectType.SELFSERVICERUNNER; + + /** + * The participant's id. + */ + @IsInt() + id: number; + + /** + * The participant's first name. + */ + @IsString() + firstname: string; + + /** + * The participant's middle name. + */ + @IsString() + middlename?: string; + + /** + * The participant's last name. + */ + @IsString() + lastname: string; + + /** + * Creates a ResponseSelfServiceDonor object from a runner. + * @param donor The donor the response shall be build for. + */ + public constructor(donor: Donor) { + this.id = donor.id; + this.firstname = donor.firstname; + this.middlename = donor.middlename; + this.lastname = donor.lastname; + } +} From f693f2cde9a04147155aea4de5d52e1d19d722ca Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 3 Apr 2021 17:05:58 +0200 Subject: [PATCH 2/4] Added new responsetype for new class ref #187 --- src/models/enums/ResponseObjectType.ts | 1 + src/models/responses/ResponseSelfServiceDonor.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/models/enums/ResponseObjectType.ts b/src/models/enums/ResponseObjectType.ts index c7fc527..91423cf 100644 --- a/src/models/enums/ResponseObjectType.ts +++ b/src/models/enums/ResponseObjectType.ts @@ -35,4 +35,5 @@ export enum ResponseObjectType { USER = 'USER', USERGROUP = 'USERGROUP', USERPERMISSIONS = 'USERPERMISSIONS', + SELFSERVICEDONOR = 'SELFSERVICEDONOR' } \ No newline at end of file diff --git a/src/models/responses/ResponseSelfServiceDonor.ts b/src/models/responses/ResponseSelfServiceDonor.ts index 9be0212..a305233 100644 --- a/src/models/responses/ResponseSelfServiceDonor.ts +++ b/src/models/responses/ResponseSelfServiceDonor.ts @@ -12,7 +12,7 @@ export class ResponseSelfServiceDonor implements IResponse { * The responseType. * This contains the type of class/entity this response contains. */ - responseType: ResponseObjectType = ResponseObjectType.SELFSERVICERUNNER; + responseType: ResponseObjectType = ResponseObjectType.SELFSERVICEDONOR; /** * The participant's id. From ca87774767807a2c4bc869b0de95cc73832a8405 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 3 Apr 2021 17:06:54 +0200 Subject: [PATCH 3/4] Adjusted runner property names ref #187 --- src/models/responses/ResponseSelfServiceRunner.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/models/responses/ResponseSelfServiceRunner.ts b/src/models/responses/ResponseSelfServiceRunner.ts index 00fe9b9..f558e82 100644 --- a/src/models/responses/ResponseSelfServiceRunner.ts +++ b/src/models/responses/ResponseSelfServiceRunner.ts @@ -38,10 +38,10 @@ export class ResponseSelfServiceRunner extends ResponseParticipant implements IR group: string; /** - * The runner's associated donations. + * The runner's associated distance donations. */ @IsString() - donations: ResponseSelfServiceDonation[] + distanceDonations: ResponseSelfServiceDonation[] /** * The runner's self-service jwt for auth. @@ -60,7 +60,7 @@ export class ResponseSelfServiceRunner extends ResponseParticipant implements IR this.distance = runner.distance; this.donationAmount = runner.distanceDonationAmount; this.group = this.getTeamString(runner.group); - this.donations = this.getDonations(runner.distanceDonations); + this.distanceDonations = this.getDonations(runner.distanceDonations); } /** From 0767943721b6964d542f580c541e744f86444ac6 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 3 Apr 2021 17:07:44 +0200 Subject: [PATCH 4/4] Switched selfservice donation.donor from string to object ref #187 --- src/models/responses/ResponseSelfServiceDonation.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/models/responses/ResponseSelfServiceDonation.ts b/src/models/responses/ResponseSelfServiceDonation.ts index beb8fdc..38d5abf 100644 --- a/src/models/responses/ResponseSelfServiceDonation.ts +++ b/src/models/responses/ResponseSelfServiceDonation.ts @@ -2,6 +2,7 @@ import { IsInt, IsNotEmpty, IsPositive } from 'class-validator'; import { DistanceDonation } from '../entities/DistanceDonation'; import { ResponseObjectType } from '../enums/ResponseObjectType'; import { IResponse } from './IResponse'; +import { ResponseSelfServiceDonor } from './ResponseSelfServiceDonor'; /** * Defines the runner selfservice donation response. @@ -18,7 +19,7 @@ export class ResponseSelfServiceDonation implements IResponse { * The donation's donor. */ @IsNotEmpty() - donor: string; + donor: ResponseSelfServiceDonor; /** * The donation's amount in the smalles unit of your currency (default: euro cent). @@ -35,9 +36,7 @@ export class ResponseSelfServiceDonation implements IResponse { amountPerDistance: number; public constructor(donation: DistanceDonation) { - if (!donation.donor.middlename) { this.donor = donation.donor.firstname + " " + donation.donor.lastname; } - else { this.donor = donation.donor.firstname + " " + donation.donor.middlename + " " + donation.donor.lastname; } - + this.donor = new ResponseSelfServiceDonor(donation.donor); this.amountPerDistance = donation.amountPerDistance; this.amount = donation.amount; }