From b8fbb72fa0b659c9acc406c72a8a59c2174351b4 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 14 Apr 2021 18:12:45 +0200 Subject: [PATCH 01/14] Added payed amount fileld to donation class ref #193 --- src/models/entities/Donation.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/models/entities/Donation.ts b/src/models/entities/Donation.ts index 1dd023d..ef66b65 100644 --- a/src/models/entities/Donation.ts +++ b/src/models/entities/Donation.ts @@ -2,7 +2,7 @@ import { IsInt, IsNotEmpty } from "class-validator"; -import { Entity, ManyToOne, PrimaryGeneratedColumn, TableInheritance } from "typeorm"; +import { Column, Entity, ManyToOne, PrimaryGeneratedColumn, TableInheritance } from "typeorm"; import { ResponseDonation } from '../responses/ResponseDonation'; import { Donor } from './Donor'; @@ -34,6 +34,13 @@ export abstract class Donation { */ public abstract get amount(): number; + /** + * The donation's payed amount in cents (or whatever your currency's smallest unit is.). + * Used to mark donations as payed. + */ + @Column({ nullable: true }) + @IsInt() + payedAmount: number; /** * Turns this entity into it's response class. -- 2.47.2 From d64f470b608b3f179ec77da0210de51c328ef3f2 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 14 Apr 2021 18:15:37 +0200 Subject: [PATCH 02/14] Added payed amount to response class ref #193 --- src/models/responses/ResponseDonation.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/models/responses/ResponseDonation.ts b/src/models/responses/ResponseDonation.ts index e29f11f..14ca197 100644 --- a/src/models/responses/ResponseDonation.ts +++ b/src/models/responses/ResponseDonation.ts @@ -34,6 +34,12 @@ export class ResponseDonation implements IResponse { @IsInt() amount: number; + /** + * The donation's payed amount in the smalles unit of your currency (default: euro cent). + */ + @IsInt() + payedAmount: number; + /** * Creates a ResponseDonation object from a scan. * @param donation The donation the response shall be build for. @@ -42,5 +48,6 @@ export class ResponseDonation implements IResponse { this.id = donation.id; this.donor = donation.donor.toResponse(); this.amount = donation.amount; + this.payedAmount = donation.payedAmount; } } -- 2.47.2 From 71542bc3887b97c15436d03280e49f7b3f0fcb06 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 14 Apr 2021 18:17:26 +0200 Subject: [PATCH 03/14] Added payed amount to crealte classes ref #193 --- src/models/actions/create/CreateDistanceDonation.ts | 1 + src/models/actions/create/CreateDonation.ts | 6 ++++++ src/models/actions/create/CreateFixedDonation.ts | 1 + 3 files changed, 8 insertions(+) diff --git a/src/models/actions/create/CreateDistanceDonation.ts b/src/models/actions/create/CreateDistanceDonation.ts index b1ba1dd..99db308 100644 --- a/src/models/actions/create/CreateDistanceDonation.ts +++ b/src/models/actions/create/CreateDistanceDonation.ts @@ -33,6 +33,7 @@ export class CreateDistanceDonation extends CreateDonation { let newDonation = new DistanceDonation; newDonation.amountPerDistance = this.amountPerDistance; + newDonation.payedAmount = this.payedAmount; newDonation.donor = await this.getDonor(); newDonation.runner = await this.getRunner(); diff --git a/src/models/actions/create/CreateDonation.ts b/src/models/actions/create/CreateDonation.ts index 50d7cd7..fcd4734 100644 --- a/src/models/actions/create/CreateDonation.ts +++ b/src/models/actions/create/CreateDonation.ts @@ -16,6 +16,12 @@ export abstract class CreateDonation { @IsPositive() donor: number; + /** + * The donation's payed amount in the smalles unit of your currency (default: euro cent). + */ + @IsInt() + payedAmount: number; + /** * Creates a new Donation entity from this. */ diff --git a/src/models/actions/create/CreateFixedDonation.ts b/src/models/actions/create/CreateFixedDonation.ts index 4d73f50..cc1af3c 100644 --- a/src/models/actions/create/CreateFixedDonation.ts +++ b/src/models/actions/create/CreateFixedDonation.ts @@ -21,6 +21,7 @@ export class CreateFixedDonation extends CreateDonation { let newDonation = new FixedDonation; newDonation.amount = this.amount; + newDonation.payedAmount = this.payedAmount; newDonation.donor = await this.getDonor(); return newDonation; -- 2.47.2 From 99307423c533f8cde847b59a80bffc2ff42c9769 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 14 Apr 2021 18:19:26 +0200 Subject: [PATCH 04/14] Added payed amount to update classes ref #193 --- src/models/actions/update/UpdateDonation.ts | 6 ++++++ src/models/actions/update/UpdateFixedDonation.ts | 1 + 2 files changed, 7 insertions(+) diff --git a/src/models/actions/update/UpdateDonation.ts b/src/models/actions/update/UpdateDonation.ts index 569454a..b64d656 100644 --- a/src/models/actions/update/UpdateDonation.ts +++ b/src/models/actions/update/UpdateDonation.ts @@ -23,6 +23,12 @@ export abstract class UpdateDonation { @IsPositive() donor: number; + /** + * The donation's payed amount in the smalles unit of your currency (default: euro cent). + */ + @IsInt() + payedAmount: number; + /** * Creates a new Donation entity from this. */ diff --git a/src/models/actions/update/UpdateFixedDonation.ts b/src/models/actions/update/UpdateFixedDonation.ts index 5e31068..19919dd 100644 --- a/src/models/actions/update/UpdateFixedDonation.ts +++ b/src/models/actions/update/UpdateFixedDonation.ts @@ -20,6 +20,7 @@ export class UpdateFixedDonation extends UpdateDonation { */ public async update(donation: FixedDonation): Promise { donation.amount = this.amount; + donation.payedAmount = this.payedAmount; donation.donor = await this.getDonor(); return donation; -- 2.47.2 From b4c31ee9b5b35d6e11b07f50f3d30ca12e0f7728 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 14 Apr 2021 18:25:42 +0200 Subject: [PATCH 05/14] Added donation status enum ref #193 --- src/models/enums/DonationStatus.ts | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/models/enums/DonationStatus.ts diff --git a/src/models/enums/DonationStatus.ts b/src/models/enums/DonationStatus.ts new file mode 100644 index 0000000..5b2658f --- /dev/null +++ b/src/models/enums/DonationStatus.ts @@ -0,0 +1,7 @@ +/** + * This enum contains all status a donation can inherit regarding it's payment status. + */ +export enum DonationStatus { + OPEN = 'OPEN', + PAYED = 'PAYED' +} \ No newline at end of file -- 2.47.2 From 34dbaaafe0422234848eabe3f52b26879c9e5a49 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 14 Apr 2021 18:28:08 +0200 Subject: [PATCH 06/14] Responses now contain the donation status ref #193 --- src/models/responses/ResponseDonation.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/models/responses/ResponseDonation.ts b/src/models/responses/ResponseDonation.ts index 14ca197..813aba3 100644 --- a/src/models/responses/ResponseDonation.ts +++ b/src/models/responses/ResponseDonation.ts @@ -1,5 +1,6 @@ import { IsInt, IsNotEmpty, IsPositive } from "class-validator"; import { Donation } from '../entities/Donation'; +import { DonationStatus } from '../enums/DonationStatus'; import { ResponseObjectType } from '../enums/ResponseObjectType'; import { IResponse } from './IResponse'; import { ResponseDonor } from './ResponseDonor'; @@ -15,6 +16,12 @@ export class ResponseDonation implements IResponse { */ 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. */ @@ -49,5 +56,11 @@ export class ResponseDonation implements IResponse { this.donor = donation.donor.toResponse(); this.amount = donation.amount; this.payedAmount = donation.payedAmount; + if (this.payedAmount < this.amount) { + this.status = DonationStatus.OPEN; + } + else { + this.status = DonationStatus.PAYED; + } } } -- 2.47.2 From 0636616dad5afb41ffe47a857d91ac75b4f2f20a Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 14 Apr 2021 18:29:40 +0200 Subject: [PATCH 07/14] Marked payedAmount as optional during creation and/or update ref #193 --- src/models/actions/create/CreateDonation.ts | 5 +++-- src/models/actions/update/UpdateDonation.ts | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/models/actions/create/CreateDonation.ts b/src/models/actions/create/CreateDonation.ts index fcd4734..9cf0870 100644 --- a/src/models/actions/create/CreateDonation.ts +++ b/src/models/actions/create/CreateDonation.ts @@ -1,4 +1,4 @@ -import { IsInt, IsPositive } from 'class-validator'; +import { IsInt, IsOptional, IsPositive } from 'class-validator'; import { getConnection } from 'typeorm'; import { DonorNotFoundError } from '../../../errors/DonorErrors'; import { Donation } from '../../entities/Donation'; @@ -20,7 +20,8 @@ export abstract class CreateDonation { * The donation's payed amount in the smalles unit of your currency (default: euro cent). */ @IsInt() - payedAmount: number; + @IsOptional() + payedAmount?: number; /** * Creates a new Donation entity from this. diff --git a/src/models/actions/update/UpdateDonation.ts b/src/models/actions/update/UpdateDonation.ts index b64d656..b08e4e9 100644 --- a/src/models/actions/update/UpdateDonation.ts +++ b/src/models/actions/update/UpdateDonation.ts @@ -1,4 +1,4 @@ -import { IsInt, IsPositive } from 'class-validator'; +import { IsInt, IsOptional, IsPositive } from 'class-validator'; import { getConnection } from 'typeorm'; import { DonorNotFoundError } from '../../../errors/DonorErrors'; import { Donation } from '../../entities/Donation'; @@ -27,7 +27,8 @@ export abstract class UpdateDonation { * The donation's payed amount in the smalles unit of your currency (default: euro cent). */ @IsInt() - payedAmount: number; + @IsOptional() + payedAmount?: number; /** * Creates a new Donation entity from this. -- 2.47.2 From 01ed51489eb92fff907d46a930ecf0b0eb5cad2b Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 14 Apr 2021 18:34:15 +0200 Subject: [PATCH 08/14] Updated tests ref #193 --- src/tests/donations/donations_add.spec.ts | 41 +++++++++++++++++++- src/tests/donations/donations_update.spec.ts | 24 ++++++++++++ 2 files changed, 63 insertions(+), 2 deletions(-) diff --git a/src/tests/donations/donations_add.spec.ts b/src/tests/donations/donations_add.spec.ts index c851d8d..ab6e65b 100644 --- a/src/tests/donations/donations_add.spec.ts +++ b/src/tests/donations/donations_add.spec.ts @@ -170,7 +170,7 @@ describe('POST /api/donations/fixed successfully', () => { expect(res.status).toEqual(200); expect(res.headers['content-type']).toContain("application/json") }); - it('creating a new fixed donation should return 200', async () => { + it('creating a new fixed donation with more params should return 200', async () => { const res = await axios.post(base + '/api/donations/fixed', { "donor": added_donor.id, "amount": 1000 @@ -181,6 +181,23 @@ describe('POST /api/donations/fixed successfully', () => { expect(res.data).toEqual({ "donor": added_donor, "amount": 1000, + "payedAmount": 0, + "responseType": "DONATION" + }); + }); + it('creating a new fixed donation with all params should return 200', async () => { + const res = await axios.post(base + '/api/donations/fixed', { + "donor": added_donor.id, + "amount": 1000, + "payedAmount": 1000 + }, axios_config); + delete res.data.id; + expect(res.status).toEqual(200); + expect(res.headers['content-type']).toContain("application/json"); + expect(res.data).toEqual({ + "donor": added_donor, + "amount": 1000, + "payedAmount": 1000, "responseType": "DONATION" }); }); @@ -219,7 +236,7 @@ describe('POST /api/donations/distance successfully', () => { expect(res.status).toEqual(200); expect(res.headers['content-type']).toContain("application/json") }); - it('creating a new fixed donation should return 200', async () => { + it('creating a new fixed donation with most params should return 200', async () => { const res = await axios.post(base + '/api/donations/distance', { "runner": added_runner.id, "amountPerDistance": 100, @@ -233,6 +250,26 @@ describe('POST /api/donations/distance successfully', () => { "amountPerDistance": 100, "runner": added_runner, "amount": 0, + "payedAmount": 0, + "responseType": "DISTANCEDONATION" + }) + }); + it('creating a new fixed donation with all params should return 200', async () => { + const res = await axios.post(base + '/api/donations/distance', { + "runner": added_runner.id, + "amountPerDistance": 100, + "donor": added_donor.id, + "payedAmount": 1000 + }, axios_config); + delete res.data.id; + expect(res.status).toEqual(200); + expect(res.headers['content-type']).toContain("application/json"); + expect(res.data).toEqual({ + "donor": added_donor, + "amountPerDistance": 100, + "runner": added_runner, + "amount": 0, + "payedAmount": 1000, "responseType": "DISTANCEDONATION" }) }); diff --git a/src/tests/donations/donations_update.spec.ts b/src/tests/donations/donations_update.spec.ts index 0ac7e86..56c6f42 100644 --- a/src/tests/donations/donations_update.spec.ts +++ b/src/tests/donations/donations_update.spec.ts @@ -213,6 +213,17 @@ describe('adding + updating fixed donation valid', () => { expect(res.headers['content-type']).toContain("application/json"); expect(res.data.amount).toEqual(42); }); + it('updating payedAmount should return 200', async () => { + const res = await axios.put(base + '/api/donations/fixed/' + added_donation.id, { + "id": added_donation.id, + "donor": added_donor.id, + "amount": 42, + "payedAmount": 10 + }, axios_config); + expect(res.status).toEqual(200); + expect(res.headers['content-type']).toContain("application/json"); + expect(res.data.amount).toEqual(42); + }); it('updating donor should return 200', async () => { const res = await axios.put(base + '/api/donations/fixed/' + added_donation.id, { "id": added_donation.id, @@ -317,6 +328,19 @@ describe('adding + updating distance donation valid', () => { expect(res.headers['content-type']).toContain("application/json"); expect(res.data.amountPerDistance).toEqual(69); }); + it('updating payedAmount should return 200', async () => { + const res = await axios.put(base + '/api/donations/distance/' + added_donation.id, { + "id": added_donation.id, + "runner": added_runner.id, + "amountPerDistance": 69, + "donor": added_donor.id, + "payedAmount": 10 + }, axios_config); + delete res.data.donor.donationAmount; + expect(res.status).toEqual(200); + expect(res.headers['content-type']).toContain("application/json"); + expect(res.data.amountPerDistance).toEqual(69); + }); it('updating runner should return 200', async () => { const res = await axios.put(base + '/api/donations/distance/' + added_donation.id, { "id": added_donation.id, -- 2.47.2 From 6c14ed9c89eadc1a10db8c912d8ea2711a518766 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 14 Apr 2021 18:36:59 +0200 Subject: [PATCH 09/14] Added mssing check to tests ref #193 --- src/tests/donations/donations_update.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tests/donations/donations_update.spec.ts b/src/tests/donations/donations_update.spec.ts index 56c6f42..6331e19 100644 --- a/src/tests/donations/donations_update.spec.ts +++ b/src/tests/donations/donations_update.spec.ts @@ -222,7 +222,7 @@ describe('adding + updating fixed donation valid', () => { }, axios_config); expect(res.status).toEqual(200); expect(res.headers['content-type']).toContain("application/json"); - expect(res.data.amount).toEqual(42); + expect(res.data.payedAmount).toEqual(10); }); it('updating donor should return 200', async () => { const res = await axios.put(base + '/api/donations/fixed/' + added_donation.id, { @@ -339,7 +339,7 @@ describe('adding + updating distance donation valid', () => { delete res.data.donor.donationAmount; expect(res.status).toEqual(200); expect(res.headers['content-type']).toContain("application/json"); - expect(res.data.amountPerDistance).toEqual(69); + expect(res.data.payedAmount).toEqual(10); }); it('updating runner should return 200', async () => { const res = await axios.put(base + '/api/donations/distance/' + added_donation.id, { -- 2.47.2 From 30c6d3d8db9fe37a51e596a73add8b87e8616e54 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 14 Apr 2021 18:41:20 +0200 Subject: [PATCH 10/14] Added status to tests ref #193 --- src/tests/donations/donations_add.spec.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/tests/donations/donations_add.spec.ts b/src/tests/donations/donations_add.spec.ts index ab6e65b..3080854 100644 --- a/src/tests/donations/donations_add.spec.ts +++ b/src/tests/donations/donations_add.spec.ts @@ -182,6 +182,7 @@ describe('POST /api/donations/fixed successfully', () => { "donor": added_donor, "amount": 1000, "payedAmount": 0, + "status": "OPEN", "responseType": "DONATION" }); }); @@ -198,6 +199,7 @@ describe('POST /api/donations/fixed successfully', () => { "donor": added_donor, "amount": 1000, "payedAmount": 1000, + "status": "PAYED", "responseType": "DONATION" }); }); @@ -236,7 +238,7 @@ describe('POST /api/donations/distance successfully', () => { expect(res.status).toEqual(200); expect(res.headers['content-type']).toContain("application/json") }); - it('creating a new fixed donation with most params should return 200', async () => { + it('creating a new distance donation with most params should return 200', async () => { const res = await axios.post(base + '/api/donations/distance', { "runner": added_runner.id, "amountPerDistance": 100, @@ -251,10 +253,11 @@ describe('POST /api/donations/distance successfully', () => { "runner": added_runner, "amount": 0, "payedAmount": 0, + "status": "PAYED", "responseType": "DISTANCEDONATION" }) }); - it('creating a new fixed donation with all params should return 200', async () => { + it('creating a new distance donation with all params should return 200', async () => { const res = await axios.post(base + '/api/donations/distance', { "runner": added_runner.id, "amountPerDistance": 100, @@ -270,6 +273,7 @@ describe('POST /api/donations/distance successfully', () => { "runner": added_runner, "amount": 0, "payedAmount": 1000, + "status": "PAYED", "responseType": "DISTANCEDONATION" }) }); -- 2.47.2 From 49b174f29f63e963e600d74b6923a20211d832eb Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 14 Apr 2021 18:42:38 +0200 Subject: [PATCH 11/14] No longer answering with null, but 0 ref #193 --- src/models/responses/ResponseDonation.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/models/responses/ResponseDonation.ts b/src/models/responses/ResponseDonation.ts index 813aba3..0703e24 100644 --- a/src/models/responses/ResponseDonation.ts +++ b/src/models/responses/ResponseDonation.ts @@ -55,7 +55,7 @@ export class ResponseDonation implements IResponse { this.id = donation.id; this.donor = donation.donor.toResponse(); this.amount = donation.amount; - this.payedAmount = donation.payedAmount; + this.payedAmount = donation.payedAmount || 0; if (this.payedAmount < this.amount) { this.status = DonationStatus.OPEN; } -- 2.47.2 From 8fe32436935d7cd6c17eae1e138383d3b714e1ba Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 14 Apr 2021 18:47:10 +0200 Subject: [PATCH 12/14] Saved missing file ref #193 --- src/models/actions/update/UpdateDistanceDonation.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/models/actions/update/UpdateDistanceDonation.ts b/src/models/actions/update/UpdateDistanceDonation.ts index 67407b9..ebcd7e7 100644 --- a/src/models/actions/update/UpdateDistanceDonation.ts +++ b/src/models/actions/update/UpdateDistanceDonation.ts @@ -32,6 +32,7 @@ export class UpdateDistanceDonation extends UpdateDonation { */ public async update(donation: DistanceDonation): Promise { donation.amountPerDistance = this.amountPerDistance; + donation.payedAmount = this.payedAmount; donation.donor = await this.getDonor(); donation.runner = await this.getRunner(); -- 2.47.2 From 8ae4b8582749332f4fb081eee0c520293347001f Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 14 Apr 2021 18:49:44 +0200 Subject: [PATCH 13/14] Added payedDonationAmount to donor and responsedonor ref #193 --- src/models/entities/Donor.ts | 9 +++++++++ src/models/responses/ResponseDonor.ts | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/src/models/entities/Donor.ts b/src/models/entities/Donor.ts index acf5536..2692e81 100644 --- a/src/models/entities/Donor.ts +++ b/src/models/entities/Donor.ts @@ -33,6 +33,15 @@ export class Donor extends Participant { return this.donations.reduce((sum, current) => sum + current.amount, 0); } + /** + * Returns the total payed donations of a donor based on his linked donations. + */ + @IsInt() + public get payedDonationAmount(): number { + if (!this.donations) { return 0; } + return this.donations.reduce((sum, current) => sum + current.payedAmount, 0); + } + /** * Turns this entity into it's response class. */ diff --git a/src/models/responses/ResponseDonor.ts b/src/models/responses/ResponseDonor.ts index 2b1e3fc..d3d2c84 100644 --- a/src/models/responses/ResponseDonor.ts +++ b/src/models/responses/ResponseDonor.ts @@ -28,6 +28,12 @@ export class ResponseDonor extends ResponseParticipant implements IResponse { @IsInt() donationAmount: number; + /** + * Returns the total payed donations of a donor based on his linked donations. + */ + @IsInt() + payedDonationAmount: number; + /** * Creates a ResponseRunner object from a runner. * @param runner The user the response shall be build for. -- 2.47.2 From da266a8dd68dbb575997ae343624982b690486ec Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 14 Apr 2021 18:54:02 +0200 Subject: [PATCH 14/14] Fixed spelling ref #193 --- .../actions/create/CreateDistanceDonation.ts | 2 +- src/models/actions/create/CreateDonation.ts | 4 ++-- .../actions/create/CreateFixedDonation.ts | 2 +- .../actions/update/UpdateDistanceDonation.ts | 2 +- src/models/actions/update/UpdateDonation.ts | 4 ++-- .../actions/update/UpdateFixedDonation.ts | 2 +- src/models/entities/Donation.ts | 6 +++--- src/models/entities/Donor.ts | 6 +++--- src/models/enums/DonationStatus.ts | 2 +- src/models/responses/ResponseDonation.ts | 10 +++++----- src/models/responses/ResponseDonor.ts | 5 +++-- src/tests/donations/donations_add.spec.ts | 18 +++++++++--------- src/tests/donations/donations_update.spec.ts | 12 ++++++------ 13 files changed, 38 insertions(+), 37 deletions(-) diff --git a/src/models/actions/create/CreateDistanceDonation.ts b/src/models/actions/create/CreateDistanceDonation.ts index 99db308..133e71b 100644 --- a/src/models/actions/create/CreateDistanceDonation.ts +++ b/src/models/actions/create/CreateDistanceDonation.ts @@ -33,7 +33,7 @@ export class CreateDistanceDonation extends CreateDonation { let newDonation = new DistanceDonation; newDonation.amountPerDistance = this.amountPerDistance; - newDonation.payedAmount = this.payedAmount; + newDonation.paidAmount = this.paidAmount; newDonation.donor = await this.getDonor(); newDonation.runner = await this.getRunner(); diff --git a/src/models/actions/create/CreateDonation.ts b/src/models/actions/create/CreateDonation.ts index 9cf0870..e70455e 100644 --- a/src/models/actions/create/CreateDonation.ts +++ b/src/models/actions/create/CreateDonation.ts @@ -17,11 +17,11 @@ export abstract class CreateDonation { donor: number; /** - * The donation's payed amount in the smalles unit of your currency (default: euro cent). + * The donation's paid amount in the smalles unit of your currency (default: euro cent). */ @IsInt() @IsOptional() - payedAmount?: number; + paidAmount?: number; /** * Creates a new Donation entity from this. diff --git a/src/models/actions/create/CreateFixedDonation.ts b/src/models/actions/create/CreateFixedDonation.ts index cc1af3c..bfdca9f 100644 --- a/src/models/actions/create/CreateFixedDonation.ts +++ b/src/models/actions/create/CreateFixedDonation.ts @@ -21,7 +21,7 @@ export class CreateFixedDonation extends CreateDonation { let newDonation = new FixedDonation; newDonation.amount = this.amount; - newDonation.payedAmount = this.payedAmount; + newDonation.paidAmount = this.paidAmount; newDonation.donor = await this.getDonor(); return newDonation; diff --git a/src/models/actions/update/UpdateDistanceDonation.ts b/src/models/actions/update/UpdateDistanceDonation.ts index ebcd7e7..c9a66ce 100644 --- a/src/models/actions/update/UpdateDistanceDonation.ts +++ b/src/models/actions/update/UpdateDistanceDonation.ts @@ -32,7 +32,7 @@ export class UpdateDistanceDonation extends UpdateDonation { */ public async update(donation: DistanceDonation): Promise { donation.amountPerDistance = this.amountPerDistance; - donation.payedAmount = this.payedAmount; + donation.paidAmount = this.paidAmount; donation.donor = await this.getDonor(); donation.runner = await this.getRunner(); diff --git a/src/models/actions/update/UpdateDonation.ts b/src/models/actions/update/UpdateDonation.ts index b08e4e9..3acf2b9 100644 --- a/src/models/actions/update/UpdateDonation.ts +++ b/src/models/actions/update/UpdateDonation.ts @@ -24,11 +24,11 @@ export abstract class UpdateDonation { donor: number; /** - * The donation's payed amount in the smalles unit of your currency (default: euro cent). + * The donation's paid amount in the smalles unit of your currency (default: euro cent). */ @IsInt() @IsOptional() - payedAmount?: number; + paidAmount?: number; /** * Creates a new Donation entity from this. diff --git a/src/models/actions/update/UpdateFixedDonation.ts b/src/models/actions/update/UpdateFixedDonation.ts index 19919dd..9e0401f 100644 --- a/src/models/actions/update/UpdateFixedDonation.ts +++ b/src/models/actions/update/UpdateFixedDonation.ts @@ -20,7 +20,7 @@ export class UpdateFixedDonation extends UpdateDonation { */ public async update(donation: FixedDonation): Promise { donation.amount = this.amount; - donation.payedAmount = this.payedAmount; + donation.paidAmount = this.paidAmount; donation.donor = await this.getDonor(); return donation; diff --git a/src/models/entities/Donation.ts b/src/models/entities/Donation.ts index ef66b65..f693d01 100644 --- a/src/models/entities/Donation.ts +++ b/src/models/entities/Donation.ts @@ -35,12 +35,12 @@ export abstract class Donation { public abstract get amount(): number; /** - * The donation's payed amount in cents (or whatever your currency's smallest unit is.). - * Used to mark donations as payed. + * The donation's paid amount in cents (or whatever your currency's smallest unit is.). + * Used to mark donations as paid. */ @Column({ nullable: true }) @IsInt() - payedAmount: number; + paidAmount: number; /** * Turns this entity into it's response class. diff --git a/src/models/entities/Donor.ts b/src/models/entities/Donor.ts index 2692e81..4d42769 100644 --- a/src/models/entities/Donor.ts +++ b/src/models/entities/Donor.ts @@ -34,12 +34,12 @@ export class Donor extends Participant { } /** - * Returns the total payed donations of a donor based on his linked donations. + * Returns the total paid donations of a donor based on his linked donations. */ @IsInt() - public get payedDonationAmount(): number { + public get paidDonationAmount(): number { if (!this.donations) { return 0; } - return this.donations.reduce((sum, current) => sum + current.payedAmount, 0); + return this.donations.reduce((sum, current) => sum + current.paidAmount, 0); } /** diff --git a/src/models/enums/DonationStatus.ts b/src/models/enums/DonationStatus.ts index 5b2658f..0f2323f 100644 --- a/src/models/enums/DonationStatus.ts +++ b/src/models/enums/DonationStatus.ts @@ -3,5 +3,5 @@ */ export enum DonationStatus { OPEN = 'OPEN', - PAYED = 'PAYED' + PAID = 'PAID' } \ No newline at end of file diff --git a/src/models/responses/ResponseDonation.ts b/src/models/responses/ResponseDonation.ts index 0703e24..e917e96 100644 --- a/src/models/responses/ResponseDonation.ts +++ b/src/models/responses/ResponseDonation.ts @@ -42,10 +42,10 @@ export class ResponseDonation implements IResponse { amount: number; /** - * The donation's payed amount in the smalles unit of your currency (default: euro cent). + * The donation's paid amount in the smalles unit of your currency (default: euro cent). */ @IsInt() - payedAmount: number; + paidAmount: number; /** * Creates a ResponseDonation object from a scan. @@ -55,12 +55,12 @@ export class ResponseDonation implements IResponse { this.id = donation.id; this.donor = donation.donor.toResponse(); this.amount = donation.amount; - this.payedAmount = donation.payedAmount || 0; - if (this.payedAmount < this.amount) { + this.paidAmount = donation.paidAmount || 0; + if (this.paidAmount < this.amount) { this.status = DonationStatus.OPEN; } else { - this.status = DonationStatus.PAYED; + this.status = DonationStatus.PAID; } } } diff --git a/src/models/responses/ResponseDonor.ts b/src/models/responses/ResponseDonor.ts index d3d2c84..07f12dc 100644 --- a/src/models/responses/ResponseDonor.ts +++ b/src/models/responses/ResponseDonor.ts @@ -29,10 +29,10 @@ export class ResponseDonor extends ResponseParticipant implements IResponse { donationAmount: number; /** - * Returns the total payed donations of a donor based on his linked donations. + * Returns the total paid donations of a donor based on his linked donations. */ @IsInt() - payedDonationAmount: number; + paidDonationAmount: number; /** * Creates a ResponseRunner object from a runner. @@ -42,5 +42,6 @@ export class ResponseDonor extends ResponseParticipant implements IResponse { super(donor); this.receiptNeeded = donor.receiptNeeded; this.donationAmount = donor.donationAmount; + this.paidDonationAmount = donor.paidDonationAmount; } } diff --git a/src/tests/donations/donations_add.spec.ts b/src/tests/donations/donations_add.spec.ts index 3080854..1f9bfc2 100644 --- a/src/tests/donations/donations_add.spec.ts +++ b/src/tests/donations/donations_add.spec.ts @@ -181,7 +181,7 @@ describe('POST /api/donations/fixed successfully', () => { expect(res.data).toEqual({ "donor": added_donor, "amount": 1000, - "payedAmount": 0, + "paidAmount": 0, "status": "OPEN", "responseType": "DONATION" }); @@ -190,7 +190,7 @@ describe('POST /api/donations/fixed successfully', () => { const res = await axios.post(base + '/api/donations/fixed', { "donor": added_donor.id, "amount": 1000, - "payedAmount": 1000 + "paidAmount": 1000 }, axios_config); delete res.data.id; expect(res.status).toEqual(200); @@ -198,8 +198,8 @@ describe('POST /api/donations/fixed successfully', () => { expect(res.data).toEqual({ "donor": added_donor, "amount": 1000, - "payedAmount": 1000, - "status": "PAYED", + "paidAmount": 1000, + "status": "PAID", "responseType": "DONATION" }); }); @@ -252,8 +252,8 @@ describe('POST /api/donations/distance successfully', () => { "amountPerDistance": 100, "runner": added_runner, "amount": 0, - "payedAmount": 0, - "status": "PAYED", + "paidAmount": 0, + "status": "PAID", "responseType": "DISTANCEDONATION" }) }); @@ -262,7 +262,7 @@ describe('POST /api/donations/distance successfully', () => { "runner": added_runner.id, "amountPerDistance": 100, "donor": added_donor.id, - "payedAmount": 1000 + "paidAmount": 1000 }, axios_config); delete res.data.id; expect(res.status).toEqual(200); @@ -272,8 +272,8 @@ describe('POST /api/donations/distance successfully', () => { "amountPerDistance": 100, "runner": added_runner, "amount": 0, - "payedAmount": 1000, - "status": "PAYED", + "paidAmount": 1000, + "status": "PAID", "responseType": "DISTANCEDONATION" }) }); diff --git a/src/tests/donations/donations_update.spec.ts b/src/tests/donations/donations_update.spec.ts index 6331e19..c7f4fc7 100644 --- a/src/tests/donations/donations_update.spec.ts +++ b/src/tests/donations/donations_update.spec.ts @@ -213,16 +213,16 @@ describe('adding + updating fixed donation valid', () => { expect(res.headers['content-type']).toContain("application/json"); expect(res.data.amount).toEqual(42); }); - it('updating payedAmount should return 200', async () => { + it('updating paidAmount should return 200', async () => { const res = await axios.put(base + '/api/donations/fixed/' + added_donation.id, { "id": added_donation.id, "donor": added_donor.id, "amount": 42, - "payedAmount": 10 + "paidAmount": 10 }, axios_config); expect(res.status).toEqual(200); expect(res.headers['content-type']).toContain("application/json"); - expect(res.data.payedAmount).toEqual(10); + expect(res.data.paidAmount).toEqual(10); }); it('updating donor should return 200', async () => { const res = await axios.put(base + '/api/donations/fixed/' + added_donation.id, { @@ -328,18 +328,18 @@ describe('adding + updating distance donation valid', () => { expect(res.headers['content-type']).toContain("application/json"); expect(res.data.amountPerDistance).toEqual(69); }); - it('updating payedAmount should return 200', async () => { + it('updating paidAmount should return 200', async () => { const res = await axios.put(base + '/api/donations/distance/' + added_donation.id, { "id": added_donation.id, "runner": added_runner.id, "amountPerDistance": 69, "donor": added_donor.id, - "payedAmount": 10 + "paidAmount": 10 }, axios_config); delete res.data.donor.donationAmount; expect(res.status).toEqual(200); expect(res.headers['content-type']).toContain("application/json"); - expect(res.data.payedAmount).toEqual(10); + expect(res.data.paidAmount).toEqual(10); }); it('updating runner should return 200', async () => { const res = await axios.put(base + '/api/donations/distance/' + added_donation.id, { -- 2.47.2