diff --git a/src/controllers/DonationController.ts b/src/controllers/DonationController.ts
index 4428639..18c9525 100644
--- a/src/controllers/DonationController.ts
+++ b/src/controllers/DonationController.ts
@@ -12,6 +12,7 @@ import { UpdateFixedDonation } from '../models/actions/update/UpdateFixedDonatio
import { DistanceDonation } from '../models/entities/DistanceDonation';
import { Donation } from '../models/entities/Donation';
import { FixedDonation } from '../models/entities/FixedDonation';
+import { ResponseAnonymousDonation } from '../models/responses/ResponseAnonymousDonation';
import { ResponseDistanceDonation } from '../models/responses/ResponseDistanceDonation';
import { ResponseDonation } from '../models/responses/ResponseDonation';
import { ResponseEmpty } from '../models/responses/ResponseEmpty';
@@ -36,6 +37,7 @@ export class DonationController {
@Authorized("DONATION:GET")
@ResponseSchema(ResponseDonation, { isArray: true })
@ResponseSchema(ResponseDistanceDonation, { isArray: true })
+ @ResponseSchema(ResponseAnonymousDonation, { isArray: true })
@OpenAPI({ description: 'Lists all donations (fixed or distance based) from all donors.
This includes the donations\'s runner\'s distance ran(if distance donation).' })
async getAll(@QueryParam("page", { required: false }) page: number, @QueryParam("page_size", { required: false }) page_size: number = 100) {
let responseDonations: ResponseDonation[] = new Array();
@@ -57,6 +59,7 @@ export class DonationController {
@Authorized("DONATION:GET")
@ResponseSchema(ResponseDonation)
@ResponseSchema(ResponseDistanceDonation)
+ @ResponseSchema(ResponseAnonymousDonation)
@ResponseSchema(DonationNotFoundError, { statusCode: 404 })
@OnUndefined(DonationNotFoundError)
@OpenAPI({ description: 'Lists all information about the donation whose id got provided. This includes the donation\'s runner\'s distance ran (if distance donation).' })
diff --git a/src/models/responses/ResponseAnonymousDonation.ts b/src/models/responses/ResponseAnonymousDonation.ts
new file mode 100644
index 0000000..aa0e024
--- /dev/null
+++ b/src/models/responses/ResponseAnonymousDonation.ts
@@ -0,0 +1,58 @@
+import { IsInt, IsPositive } from "class-validator";
+import { Donation } from '../entities/Donation';
+import { DonationStatus } from '../enums/DonationStatus';
+import { ResponseObjectType } from '../enums/ResponseObjectType';
+import { IResponse } from './IResponse';
+
+/**
+ * Defines the donation response.
+*/
+export class ResponseAnonymousDonation implements IResponse {
+
+ /**
+ * The responseType.
+ * This contains the type of class/entity this response contains.
+ */
+ responseType: ResponseObjectType = ResponseObjectType.DONATION;
+
+ /**
+ * The donation's payment status.
+ * Provides you with a quick indicator of it's payment status.
+ */
+ status: DonationStatus;
+
+ /**
+ * The donation's id.
+ */
+ @IsInt()
+ @IsPositive()
+ id: number;
+
+ /**
+ * The donation's amount in the smalles unit of your currency (default: euro cent).
+ */
+ @IsInt()
+ amount: number;
+
+ /**
+ * The donation's paid amount in the smalles unit of your currency (default: euro cent).
+ */
+ @IsInt()
+ paidAmount: number;
+
+ /**
+ * Creates a ResponseDonation object from a scan.
+ * @param donation The donation the response shall be build for.
+ */
+ public constructor(donation: Donation) {
+ this.id = donation.id;
+ this.amount = donation.amount;
+ this.paidAmount = donation.paidAmount || 0;
+ if (this.paidAmount < this.amount) {
+ this.status = DonationStatus.OPEN;
+ }
+ else {
+ this.status = DonationStatus.PAID;
+ }
+ }
+}