Compare commits

..
21 Commits
Author SHA1 Message Date
niggl f19f2808d8 Merge pull request 'Release 0.11.1' (#196) from dev into main
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
Reviewed-on: #196
Reviewed-by: Philipp Dormann <philipp@philippdormann.de>
2021-04-22 18:21:16 +00:00
niggl 3b9cd2e1bb 🧾New changelog file version [CI SKIP] [skip ci]
continuous-integration/drone/pr Build is passing
2021-04-22 17:59:02 +00:00
niggl 95320ca1bc 🚀Bumped version to v0.11.1
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is passing
2021-04-22 19:57:31 +02:00
niggl f2d127fc98 🧾New changelog file version [CI SKIP] [skip ci]
continuous-integration/drone/pr Build is passing
2021-04-22 17:53:09 +00:00
niggl eb526fb57f Added fix for the appended 2
continuous-integration/drone/push Build is passing
2021-04-22 19:52:32 +02:00
niggl 348fe52c42 🧾New changelog file version [CI SKIP] [skip ci] 2021-04-22 17:42:09 +00:00
niggl eef0fa6952 Merge branch 'dev' of git.odit.services:lfk/backend into dev
continuous-integration/drone/push Build is passing
2021-04-22 19:41:21 +02:00
niggl 8a82e059b7 Now prefixing runnercards with 2 2021-04-22 19:41:18 +02:00
niggl 2229cdf20d 🧾New changelog file version [CI SKIP] [skip ci] 2021-04-14 17:05:15 +00:00
niggl 3220b194d4 Merge pull request 'Release 0.11.0' (#195) from dev into main
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
Reviewed-on: #195
Reviewed-by: Philipp Dormann <philipp@philippdormann.de>
2021-04-14 17:04:29 +00:00
niggl 278c4a6a41 🧾New changelog file version [CI SKIP] [skip ci]
continuous-integration/drone/pr Build is failing
2021-04-14 16:59:20 +00:00
niggl ec50ac31c4 Merge branch 'dev' of git.odit.services:lfk/backend into dev
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2021-04-14 18:58:24 +02:00
niggl a2f0d814fc 📖New license file version [CI SKIP] [skip ci]
continuous-integration/drone/pr Build is passing
2021-04-14 16:58:11 +00:00
niggl 6468b35708 Merge branch 'dev' of git.odit.services:lfk/backend into dev 2021-04-14 18:57:45 +02:00
niggl 3558e99090 🚀Bumped version to v0.11.0 2021-04-14 18:57:26 +02:00
niggl 520608aef0 🧾New changelog file version [CI SKIP] [skip ci] 2021-04-14 16:57:03 +00:00
niggl 6df5f634f3 Merge pull request 'Donation payment management feature/193-donation_payments' (#194) from feature/193-donation_payments into dev
continuous-integration/drone/push Build is passing
Reviewed-on: #194
2021-04-14 16:56:22 +00:00
niggl da266a8dd6 Fixed spelling
continuous-integration/drone/pr Build is passing
ref #193
2021-04-14 18:54:02 +02:00
niggl 8ae4b85827 Added payedDonationAmount to donor and responsedonor
continuous-integration/drone/pr Build is passing
ref #193
2021-04-14 18:49:44 +02:00
niggl 8fe3243693 Saved missing file
continuous-integration/drone/pr Build is passing
ref #193
2021-04-14 18:47:10 +02:00
niggl 49b174f29f No longer answering with null, but 0
continuous-integration/drone/pr Build is failing
ref #193
2021-04-14 18:42:38 +02:00
18 changed files with 92 additions and 36 deletions
+37
View File
@@ -2,8 +2,45 @@
All notable changes to this project will be documented in this file. Dates are displayed in UTC.
#### [v0.11.1](https://git.odit.services/lfk/backend/compare/v0.11.0...v0.11.1)
- 🧾New changelog file version [CI SKIP] [skip ci] [`2229cdf`](https://git.odit.services/lfk/backend/commit/2229cdf20db1a98f9f76a99fa9d3f463cdf6d804)
- 🧾New changelog file version [CI SKIP] [skip ci] [`348fe52`](https://git.odit.services/lfk/backend/commit/348fe52c42cfa32239b703041820f725e147154e)
- Now prefixing runnercards with 2 [`8a82e05`](https://git.odit.services/lfk/backend/commit/8a82e059b74ceabf43c9cbfe9c9b89ef6ce15a28)
- Added fix for the appended 2 [`eb526fb`](https://git.odit.services/lfk/backend/commit/eb526fb57faf631fd6e84af99af738ab1b3481c7)
- 🚀Bumped version to v0.11.1 [`95320ca`](https://git.odit.services/lfk/backend/commit/95320ca1bccc2886553accea6a428aadffda0a27)
- 🧾New changelog file version [CI SKIP] [skip ci] [`f2d127f`](https://git.odit.services/lfk/backend/commit/f2d127fc98d75ce658424624abd382c087737ca0)
#### [v0.11.0](https://git.odit.services/lfk/backend/compare/v0.10.2...v0.11.0)
> 14 April 2021
- Merge pull request 'Release 0.11.0' (#195) from dev into main [`3220b19`](https://git.odit.services/lfk/backend/commit/3220b194d4c704835d6d106ec4d9d54a17a38b62)
- Fixed spelling [`da266a8`](https://git.odit.services/lfk/backend/commit/da266a8dd68dbb575997ae343624982b690486ec)
- Updated tests [`01ed514`](https://git.odit.services/lfk/backend/commit/01ed51489eb92fff907d46a930ecf0b0eb5cad2b)
- 🧾New changelog file version [CI SKIP] [skip ci] [`520608a`](https://git.odit.services/lfk/backend/commit/520608aef05b21f4daadf55cfc8caddba06b8f01)
- Added payedDonationAmount to donor and responsedonor [`8ae4b85`](https://git.odit.services/lfk/backend/commit/8ae4b8582749332f4fb081eee0c520293347001f)
- Responses now contain the donation status [`34dbaaa`](https://git.odit.services/lfk/backend/commit/34dbaaafe0422234848eabe3f52b26879c9e5a49)
- 🧾New changelog file version [CI SKIP] [skip ci] [`278c4a6`](https://git.odit.services/lfk/backend/commit/278c4a6a415434487a92ff66f8114bb2547aac48)
- Marked payedAmount as optional during creation and/or update [`0636616`](https://git.odit.services/lfk/backend/commit/0636616dad5afb41ffe47a857d91ac75b4f2f20a)
- Added payed amount fileld to donation class [`b8fbb72`](https://git.odit.services/lfk/backend/commit/b8fbb72fa0b659c9acc406c72a8a59c2174351b4)
- Added status to tests [`30c6d3d`](https://git.odit.services/lfk/backend/commit/30c6d3d8db9fe37a51e596a73add8b87e8616e54)
- Added payed amount to response class [`d64f470`](https://git.odit.services/lfk/backend/commit/d64f470b608b3f179ec77da0210de51c328ef3f2)
- 📖New license file version [CI SKIP] [skip ci] [`a2f0d81`](https://git.odit.services/lfk/backend/commit/a2f0d814fc782ad440500e7d6ec779b6ab7f0ac6)
- 🚀Bumped version to v0.11.0 [`3558e99`](https://git.odit.services/lfk/backend/commit/3558e9909088647bd4f1f4334f50c07a5ef00214)
- Merge pull request 'Donation payment management feature/193-donation_payments' (#194) from feature/193-donation_payments into dev [`6df5f63`](https://git.odit.services/lfk/backend/commit/6df5f634f3123e04c015889573ccc5674a8bab27)
- Added payed amount to crealte classes [`71542bc`](https://git.odit.services/lfk/backend/commit/71542bc3887b97c15436d03280e49f7b3f0fcb06)
- Added donation status enum [`b4c31ee`](https://git.odit.services/lfk/backend/commit/b4c31ee9b5b35d6e11b07f50f3d30ca12e0f7728)
- Added payed amount to update classes [`9930742`](https://git.odit.services/lfk/backend/commit/99307423c533f8cde847b59a80bffc2ff42c9769)
- 🧾New changelog file version [CI SKIP] [skip ci] [`0c61ff4`](https://git.odit.services/lfk/backend/commit/0c61ff457d02f750efa457dd75464187683b037a)
- Added mssing check to tests [`6c14ed9`](https://git.odit.services/lfk/backend/commit/6c14ed9c89eadc1a10db8c912d8ea2711a518766)
- No longer answering with null, but 0 [`49b174f`](https://git.odit.services/lfk/backend/commit/49b174f29f63e963e600d74b6923a20211d832eb)
- Saved missing file [`8fe3243`](https://git.odit.services/lfk/backend/commit/8fe32436935d7cd6c17eae1e138383d3b714e1ba)
#### [v0.10.2](https://git.odit.services/lfk/backend/compare/v0.10.1...v0.10.2)
> 7 April 2021
- Merge pull request 'Release 0.10.2' (#192) from dev into main [`1d82f65`](https://git.odit.services/lfk/backend/commit/1d82f65b0d3a32d10c1a10c991353c18696d58bf)
- Added first selfservice test [`057ae0d`](https://git.odit.services/lfk/backend/commit/057ae0d79758cd627d6d128406a0d201b6b7ad9b)
- 🧾New changelog file version [CI SKIP] [skip ci] [`b7ad5d3`](https://git.odit.services/lfk/backend/commit/b7ad5d3a31b8b4f5960852d3ac38af133719ebcd)
+1 -1
View File
@@ -454,7 +454,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
## License Text
MIT License
Copyright (c) 2010 - 2020 Brian Carlson
Copyright (c) 2010 - 2021 Brian Carlson
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@odit/lfk-backend",
"version": "0.10.2",
"version": "0.11.1",
"main": "src/app.ts",
"repository": "https://git.odit.services/lfk/backend",
"author": {
@@ -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();
+2 -2
View File
@@ -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.
@@ -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;
+2 -1
View File
@@ -57,7 +57,8 @@ export class CreateTrackScan {
* @returns The runnerCard whom's id you provided.
*/
public async getCard(): Promise<RunnerCard> {
const track = await getConnection().getRepository(RunnerCard).findOne({ id: this.card }, { relations: ["runner"] });
const id = this.card % 200000000000;
const track = await getConnection().getRepository(RunnerCard).findOne({ id: id }, { relations: ["runner"] });
if (!track) {
throw new RunnerCardNotFoundError();
}
@@ -32,6 +32,7 @@ export class UpdateDistanceDonation extends UpdateDonation {
*/
public async update(donation: DistanceDonation): Promise<DistanceDonation> {
donation.amountPerDistance = this.amountPerDistance;
donation.paidAmount = this.paidAmount;
donation.donor = await this.getDonor();
donation.runner = await this.getRunner();
+2 -2
View File
@@ -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.
@@ -20,7 +20,7 @@ export class UpdateFixedDonation extends UpdateDonation {
*/
public async update(donation: FixedDonation): Promise<FixedDonation> {
donation.amount = this.amount;
donation.payedAmount = this.payedAmount;
donation.paidAmount = this.paidAmount;
donation.donor = await this.getDonor();
return donation;
+3 -3
View File
@@ -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.
+9
View File
@@ -33,6 +33,15 @@ export class Donor extends Participant {
return this.donations.reduce((sum, current) => sum + current.amount, 0);
}
/**
* Returns the total paid donations of a donor based on his linked donations.
*/
@IsInt()
public get paidDonationAmount(): number {
if (!this.donations) { return 0; }
return this.donations.reduce((sum, current) => sum + current.paidAmount, 0);
}
/**
* Turns this entity into it's response class.
*/
+3 -2
View File
@@ -67,10 +67,11 @@ export class RunnerCard {
private get paddedId(): string {
let id: string = this.id.toString();
if (id.length > 12) {
if (id.length > 11) {
throw new RunnerCardIdOutOfRangeError();
}
while (id.length < 12) { id = '0' + id; }
while (id.length < 11) { id = '0' + id; }
id = '2' + id;
return id;
}
+1 -1
View File
@@ -3,5 +3,5 @@
*/
export enum DonationStatus {
OPEN = 'OPEN',
PAYED = 'PAYED'
PAID = 'PAID'
}
+5 -5
View File
@@ -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;
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;
}
}
}
+7
View File
@@ -28,6 +28,12 @@ export class ResponseDonor extends ResponseParticipant implements IResponse {
@IsInt()
donationAmount: number;
/**
* Returns the total paid donations of a donor based on his linked donations.
*/
@IsInt()
paidDonationAmount: number;
/**
* Creates a ResponseRunner object from a runner.
* @param runner The user the response shall be build for.
@@ -36,5 +42,6 @@ export class ResponseDonor extends ResponseParticipant implements IResponse {
super(donor);
this.receiptNeeded = donor.receiptNeeded;
this.donationAmount = donor.donationAmount;
this.paidDonationAmount = donor.paidDonationAmount;
}
}
+9 -9
View File
@@ -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"
})
});
+6 -6
View File
@@ -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, {