From 3bcc0c1eaec5d0ccddd22d492da6fbe62d7f0ed2 Mon Sep 17 00:00:00 2001 From: zayar Date: Tue, 11 Aug 2020 03:24:54 +1000 Subject: [PATCH] Add duplication exception --- .../engagement/engagement.service.ts | 26 ++++++++++++++----- src/components/project/project.service.ts | 8 ++++++ 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/components/engagement/engagement.service.ts b/src/components/engagement/engagement.service.ts index f3104af53d..772b53b19d 100644 --- a/src/components/engagement/engagement.service.ts +++ b/src/components/engagement/engagement.service.ts @@ -270,7 +270,12 @@ export class EngagementService { // Initial LanguageEngagement const id = generate(); const createdAt = DateTime.local(); - const pnp = await this.files.createDefinedFile(`PNP`, session, input.pnp, 'engagement.pnp'); + const pnp = await this.files.createDefinedFile( + `PNP`, + session, + input.pnp, + 'engagement.pnp' + ); const ceremony = await this.ceremonyService.create( { type: CeremonyType.Dedication }, @@ -1014,7 +1019,12 @@ export class EngagementService { session )) as LanguageEngagement; - await this.files.updateDefinedFile(object.pnp, 'engagement.pnp', pnp, session); + await this.files.updateDefinedFile( + object.pnp, + 'engagement.pnp', + pnp, + session + ); try { await this.db.sgUpdateProperties({ @@ -1058,7 +1068,12 @@ export class EngagementService { session )) as InternshipEngagement; - await this.files.updateDefinedFile(object.growthPlan, 'engagement.growthPlan', growthPlan, session); + await this.files.updateDefinedFile( + object.growthPlan, + 'engagement.growthPlan', + growthPlan, + session + ); try { if (mentorId) { @@ -1159,10 +1174,7 @@ export class EngagementService { throw new ServerException('Could not find update InternshipEngagement'); } - return (await this.readOne( - input.id, - session - )) as InternshipEngagement; + return (await this.readOne(input.id, session)) as InternshipEngagement; } // DELETE ///////////////////////////////////////////////////////// diff --git a/src/components/project/project.service.ts b/src/components/project/project.service.ts index 69cd605b51..934dd0885f 100644 --- a/src/components/project/project.service.ts +++ b/src/components/project/project.service.ts @@ -3,6 +3,7 @@ import { node, relation } from 'cypher-query-builder'; import { flatMap, upperFirst } from 'lodash'; import { DateTime } from 'luxon'; import { + DuplicateException, fiscalYears, InputException, ISession, @@ -29,6 +30,7 @@ import { OnIndex, Property, runListQuery, + UniquenessError, } from '../../core'; import { Budget, @@ -375,6 +377,12 @@ export class ProjectService { return project; } catch (e) { + if (e instanceof UniquenessError && e.label === 'ProjectName') { + throw new DuplicateException( + 'project.name', + 'Project with this name already exists' + ); + } this.logger.warning(`Could not create project`, { exception: e, });