@@ -12,13 +12,15 @@ import { difference, pickBy, upperFirst } from 'lodash';
12
12
import { DateTime } from 'luxon' ;
13
13
import { MergeExclusive } from 'type-fest' ;
14
14
import {
15
+ CreationFailed ,
15
16
DuplicateException ,
16
17
generateId ,
17
18
ID ,
18
19
InputException ,
19
20
labelForView ,
20
21
NotFoundException ,
21
22
ObjectView ,
23
+ ReadAfterCreationFailed ,
22
24
ServerException ,
23
25
Session ,
24
26
typenameForView ,
@@ -268,7 +270,7 @@ export class EngagementRepository extends CommonRepository {
268
270
269
271
const result = await query . first ( ) ;
270
272
if ( ! result ) {
271
- throw new ServerException ( 'Could not create Language Engagement' ) ;
273
+ throw new CreationFailed ( LanguageEngagement ) ;
272
274
}
273
275
274
276
await this . files . createDefinedFile (
@@ -285,7 +287,11 @@ export class EngagementRepository extends CommonRepository {
285
287
result . id ,
286
288
session ,
287
289
viewOfChangeset ( changeset ) ,
288
- ) ) as UnsecuredDto < LanguageEngagement > ;
290
+ ) . catch ( ( e ) => {
291
+ throw e instanceof NotFoundException
292
+ ? new ReadAfterCreationFailed ( LanguageEngagement )
293
+ : e ;
294
+ } ) ) as UnsecuredDto < LanguageEngagement > ;
289
295
}
290
296
291
297
async createInternshipEngagement (
@@ -359,7 +365,7 @@ export class EngagementRepository extends CommonRepository {
359
365
) ;
360
366
}
361
367
362
- throw new ServerException ( 'Could not create Internship Engagement' ) ;
368
+ throw new CreationFailed ( InternshipEngagement ) ;
363
369
}
364
370
365
371
await this . files . createDefinedFile (
@@ -376,7 +382,11 @@ export class EngagementRepository extends CommonRepository {
376
382
result . id ,
377
383
session ,
378
384
viewOfChangeset ( changeset ) ,
379
- ) ) as UnsecuredDto < InternshipEngagement > ;
385
+ ) . catch ( ( e ) => {
386
+ throw e instanceof NotFoundException
387
+ ? new ReadAfterCreationFailed ( InternshipEngagement )
388
+ : e ;
389
+ } ) ) as UnsecuredDto < InternshipEngagement > ;
380
390
}
381
391
382
392
getActualLanguageChanges = getChanges ( LanguageEngagement ) ;
0 commit comments