From 4824547dde4d7f90e9e2377a26df34cabf082fdb Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 16 Jan 2021 18:52:57 +0100 Subject: [PATCH] Fixed donor address check ref #105 --- src/models/actions/create/CreateDonor.ts | 3 ++- src/models/actions/update/UpdateDonor.ts | 4 ++-- src/models/entities/Address.ts | 5 +++-- src/tests/donors/donor_update.spec.ts | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/models/actions/create/CreateDonor.ts b/src/models/actions/create/CreateDonor.ts index 5143a2c..2a9051f 100644 --- a/src/models/actions/create/CreateDonor.ts +++ b/src/models/actions/create/CreateDonor.ts @@ -1,5 +1,6 @@ import { IsBoolean, IsOptional } from 'class-validator'; import { DonorReceiptAddressNeededError } from '../../../errors/DonorErrors'; +import { Address } from '../../entities/Address'; import { Donor } from '../../entities/Donor'; import { CreateParticipant } from './CreateParticipant'; @@ -29,7 +30,7 @@ export class CreateDonor extends CreateParticipant { newDonor.receiptNeeded = this.receiptNeeded; newDonor.address = this.address; - if (this.receiptNeeded == true && this.address.isValidAddress == false) { + if (this.receiptNeeded == true && Address.isValidAddress(newDonor.address) == false) { throw new DonorReceiptAddressNeededError() } diff --git a/src/models/actions/update/UpdateDonor.ts b/src/models/actions/update/UpdateDonor.ts index e01f61a..3896309 100644 --- a/src/models/actions/update/UpdateDonor.ts +++ b/src/models/actions/update/UpdateDonor.ts @@ -1,5 +1,6 @@ import { IsBoolean, IsInt, IsOptional } from 'class-validator'; import { DonorReceiptAddressNeededError } from '../../../errors/DonorErrors'; +import { Address } from '../../entities/Address'; import { Donor } from '../../entities/Donor'; import { CreateParticipant } from '../create/CreateParticipant'; @@ -34,8 +35,7 @@ export class UpdateDonor extends CreateParticipant { donor.email = this.email; donor.receiptNeeded = this.receiptNeeded; donor.address = this.address; - - if (this.receiptNeeded == true && this.address == null) { + if (this.receiptNeeded == true && Address.isValidAddress(donor.address) == false) { throw new DonorReceiptAddressNeededError() } diff --git a/src/models/entities/Address.ts b/src/models/entities/Address.ts index 9ccc026..f25b5e8 100644 --- a/src/models/entities/Address.ts +++ b/src/models/entities/Address.ts @@ -59,8 +59,9 @@ export class Address { /** * Checks if this is a valid address */ - public get isValidAddress(): Boolean { - if (!this.address1 || !this.city || !this.country || !this.postalcode) { return false; } + public static isValidAddress(address: Address): Boolean { + if (address == null) { return false; } + if (address.address1 == null || address.city == null || address.country == null || address.postalcode == null) { return false; } return true; } } diff --git a/src/tests/donors/donor_update.spec.ts b/src/tests/donors/donor_update.spec.ts index 26f6eb6..a317adc 100644 --- a/src/tests/donors/donor_update.spec.ts +++ b/src/tests/donors/donor_update.spec.ts @@ -60,7 +60,7 @@ describe('Update donor without address but receiptNeeded=true should fail', () = it('creating a new donor with only needed params should return 200', async () => { const res2 = await axios.post(base + '/api/donors', { "firstname": "first", - "lastname": "last", + "lastname": "testtest", }, axios_config); added_donor = res2.data; expect(res2.status).toEqual(200);