7
7
Range ,
8
8
RangeException ,
9
9
RequiredWhen ,
10
+ ResourceShape ,
10
11
SecuredList ,
11
12
Session ,
12
13
UnsecuredDto ,
@@ -149,8 +150,12 @@ export class EngagementService {
149
150
return engagements . map ( ( dto ) => this . secure ( dto , session ) ) ;
150
151
}
151
152
152
- secure ( dto : UnsecuredDto < Engagement > , session : Session ) : Engagement {
153
- return this . privileges . for ( session , resolveEngagementType ( dto ) ) . secure ( dto ) ;
153
+ private secure < E extends Engagement > (
154
+ dto : UnsecuredDto < E > ,
155
+ session : Session ,
156
+ ) : E {
157
+ const res = resolveEngagementType ( dto ) as unknown as ResourceShape < E > ;
158
+ return this . privileges . for ( session , res ) . secure ( dto ) ;
154
159
}
155
160
156
161
async updateLanguageEngagement (
@@ -160,8 +165,12 @@ export class EngagementService {
160
165
) : Promise < LanguageEngagement > {
161
166
const view : ObjectView = viewOfChangeset ( changeset ) ;
162
167
163
- const previous = await this . repo . readOne ( input . id , session , view ) ;
164
- const object = this . secure ( previous , session ) as LanguageEngagement ;
168
+ const previous = ( await this . repo . readOne (
169
+ input . id ,
170
+ session ,
171
+ view ,
172
+ ) ) as UnsecuredDto < LanguageEngagement > ;
173
+ const object = this . secure ( previous , session ) ;
165
174
166
175
if ( input . status && input . status !== previous . status ) {
167
176
await this . engagementRules . verifyStatusChange (
@@ -210,8 +219,12 @@ export class EngagementService {
210
219
) : Promise < InternshipEngagement > {
211
220
const view : ObjectView = viewOfChangeset ( changeset ) ;
212
221
213
- const previous = await this . repo . readOne ( input . id , session , view ) ;
214
- const object = this . secure ( previous , session ) as InternshipEngagement ;
222
+ const previous = ( await this . repo . readOne (
223
+ input . id ,
224
+ session ,
225
+ view ,
226
+ ) ) as UnsecuredDto < InternshipEngagement > ;
227
+ const object = this . secure ( previous , session ) ;
215
228
216
229
if ( input . status && input . status !== previous . status ) {
217
230
await this . engagementRules . verifyStatusChange (
0 commit comments