@@ -10,16 +10,9 @@ import {
10
10
Session ,
11
11
UnsecuredDto ,
12
12
} from '../../common' ;
13
- import {
14
- HandleIdLookup ,
15
- ILogger ,
16
- Logger ,
17
- ResourceLoader ,
18
- ResourceResolver ,
19
- } from '../../core' ;
13
+ import { HandleIdLookup , ILogger , Logger , ResourceResolver } from '../../core' ;
20
14
import { compareNullable , ifDiff , isSame } from '../../core/database/changes' ;
21
15
import { Privileges } from '../authorization' ;
22
- import { IEngagement } from '../engagement' ;
23
16
import {
24
17
getTotalVerseEquivalents ,
25
18
getTotalVerses ,
@@ -61,7 +54,6 @@ export class ProductService {
61
54
private readonly scriptureRefs : ScriptureReferenceService ,
62
55
private readonly privileges : Privileges ,
63
56
private readonly repo : ProductRepository ,
64
- private readonly resourceLoader : ResourceLoader ,
65
57
private readonly resources : ResourceResolver ,
66
58
@Logger ( 'product:service' ) private readonly logger : ILogger ,
67
59
) { }
@@ -73,18 +65,6 @@ export class ProductService {
73
65
| CreateOtherProduct ,
74
66
session : Session ,
75
67
) : Promise < AnyProduct > {
76
- const engagementResource = await this . resourceLoader . load (
77
- IEngagement ,
78
- input . engagementId ,
79
- ) ;
80
- const engagementPrivileges = this . privileges . for (
81
- session ,
82
- IEngagement ,
83
- engagementResource ,
84
- ) ;
85
-
86
- engagementPrivileges . verifyCan ( 'create' ) ;
87
-
88
68
const engagement = await this . repo . getBaseNode (
89
69
input . engagementId ,
90
70
'Engagement' ,
@@ -175,7 +155,13 @@ export class ProductService {
175
155
} ) ;
176
156
177
157
this . logger . debug ( `product created` , { id } ) ;
178
- return await this . readOne ( id , session ) ;
158
+ const created = await this . readOne ( id , session ) ;
159
+
160
+ this . privileges
161
+ . for ( session , resolveProductType ( created ) , created )
162
+ . verifyCan ( 'create' ) ;
163
+
164
+ return created ;
179
165
}
180
166
181
167
@HandleIdLookup ( [
0 commit comments