From 12a9ae24933117acb3ff9815a7d72abca5eea7a7 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 19 Apr 2023 18:10:26 +0200 Subject: [PATCH] feat(donors): Resolve donations with donors via pagination --- src/models/responses/ResponseDonation.ts | 4 +++- src/models/responses/ResponseDonor.ts | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/models/responses/ResponseDonation.ts b/src/models/responses/ResponseDonation.ts index e917e96..cc11b78 100644 --- a/src/models/responses/ResponseDonation.ts +++ b/src/models/responses/ResponseDonation.ts @@ -53,7 +53,9 @@ export class ResponseDonation implements IResponse { */ public constructor(donation: Donation) { this.id = donation.id; - this.donor = donation.donor.toResponse(); + if (donation.donor) { + this.donor = donation.donor.toResponse(); + } this.amount = donation.amount; this.paidAmount = donation.paidAmount || 0; if (this.paidAmount < this.amount) { diff --git a/src/models/responses/ResponseDonor.ts b/src/models/responses/ResponseDonor.ts index 07f12dc..ee5a491 100644 --- a/src/models/responses/ResponseDonor.ts +++ b/src/models/responses/ResponseDonor.ts @@ -4,6 +4,7 @@ import { import { Donor } from '../entities/Donor'; import { ResponseObjectType } from '../enums/ResponseObjectType'; import { IResponse } from './IResponse'; +import { ResponseDonation } from './ResponseDonation'; import { ResponseParticipant } from './ResponseParticipant'; /** @@ -34,6 +35,8 @@ export class ResponseDonor extends ResponseParticipant implements IResponse { @IsInt() paidDonationAmount: number; + donations: Array; + /** * Creates a ResponseRunner object from a runner. * @param runner The user the response shall be build for. @@ -43,5 +46,11 @@ export class ResponseDonor extends ResponseParticipant implements IResponse { this.receiptNeeded = donor.receiptNeeded; this.donationAmount = donor.donationAmount; this.paidDonationAmount = donor.paidDonationAmount; + this.donations = new Array(); + if (donor.donations?.length > 0) { + for (const donation of donor.donations) { + this.donations.push(donation.toResponse()) + } + } } }