@@ -11,7 +11,8 @@ import {
11
11
OnUndefined ,
12
12
Param ,
13
13
Post ,
14
- Put
14
+ Put ,
15
+ QueryParams
15
16
} from 'routing-controllers' ;
16
17
import { ResponseSchema } from 'routing-controllers-openapi' ;
17
18
@@ -38,7 +39,7 @@ export class AwardController {
38
39
@HttpCode ( 201 )
39
40
@ResponseSchema ( Award )
40
41
async createOne (
41
- @CurrentUser ( ) currentUser : User ,
42
+ @CurrentUser ( ) createdBy : User ,
42
43
@Param ( 'name' ) name : string ,
43
44
@Body ( ) award : Award
44
45
) {
@@ -47,11 +48,11 @@ export class AwardController {
47
48
if ( ! hackathon )
48
49
throw new NotFoundError ( `Hackathon ${ name } is not found` ) ;
49
50
50
- await HackathonController . ensureAdmin ( currentUser . id , name ) ;
51
+ await HackathonController . ensureAdmin ( createdBy . id , name ) ;
51
52
52
- const saved = await awardStore . save ( { ...award , hackathon } ) ;
53
+ const saved = await awardStore . save ( { ...award , createdBy , hackathon } ) ;
53
54
54
- await ActivityLogController . logCreate ( currentUser , 'Award' , saved . id ) ;
55
+ await ActivityLogController . logCreate ( createdBy , 'Award' , saved . id ) ;
55
56
56
57
return saved ;
57
58
}
@@ -67,7 +68,7 @@ export class AwardController {
67
68
@Authorized ( )
68
69
@ResponseSchema ( Award )
69
70
async updateOne (
70
- @CurrentUser ( ) currentUser : User ,
71
+ @CurrentUser ( ) updatedBy : User ,
71
72
@Param ( 'name' ) name : string ,
72
73
@Param ( 'id' ) id : number ,
73
74
@Body ( ) updateData : Award
@@ -76,18 +77,19 @@ export class AwardController {
76
77
77
78
if ( ! award ) throw new NotFoundError ( `Award ${ id } is not found` ) ;
78
79
79
- await HackathonController . ensureAdmin ( currentUser . id , name ) ;
80
+ await HackathonController . ensureAdmin ( updatedBy . id , name ) ;
80
81
81
82
// update only allowed fields
82
83
const updatedAward = {
83
84
...award ,
84
85
...updateData ,
85
86
id, // make sure id is not overridden
87
+ updatedBy,
86
88
hackathon : award . hackathon // make sure hackathon relationship is not changed
87
89
} ;
88
90
const saved = await awardStore . save ( updatedAward ) ;
89
91
90
- await ActivityLogController . logUpdate ( currentUser , 'Award' , saved . id ) ;
92
+ await ActivityLogController . logUpdate ( updatedBy , 'Award' , saved . id ) ;
91
93
92
94
return saved ;
93
95
}
@@ -96,26 +98,27 @@ export class AwardController {
96
98
@Authorized ( )
97
99
@OnUndefined ( 204 )
98
100
async deleteOne (
99
- @CurrentUser ( ) currentUser : User ,
101
+ @CurrentUser ( ) deletedBy : User ,
100
102
@Param ( 'name' ) name : string ,
101
103
@Param ( 'id' ) id : number
102
104
) {
103
105
const award = await awardStore . findOneBy ( { id } ) ;
104
106
105
107
if ( ! award ) throw new NotFoundError ( `Award "${ id } " is not found` ) ;
106
108
107
- await HackathonController . ensureAdmin ( currentUser . id , name ) ;
109
+ await HackathonController . ensureAdmin ( deletedBy . id , name ) ;
108
110
111
+ await awardStore . save ( { ...award , deletedBy } ) ;
109
112
await awardStore . softDelete ( award . id ) ;
110
113
111
- await ActivityLogController . logDelete ( currentUser , 'Award' , award . id ) ;
114
+ await ActivityLogController . logDelete ( deletedBy , 'Award' , award . id ) ;
112
115
}
113
116
114
117
@Get ( )
115
118
@ResponseSchema ( AwardListChunk )
116
119
async getList (
117
120
@Param ( 'name' ) name : string ,
118
- { pageSize, pageIndex } : BaseFilter
121
+ @ QueryParams ( ) { pageSize, pageIndex } : BaseFilter
119
122
) {
120
123
const [ list , count ] = await awardStore . findAndCount ( {
121
124
where : { hackathon : { name } } ,
@@ -212,10 +215,13 @@ export class AwardAssignmentController {
212
215
213
216
@Get ( )
214
217
@ResponseSchema ( AwardAssignmentListChunk )
215
- getList ( @Param ( 'id' ) id : number , { pageSize, pageIndex } : BaseFilter ) {
218
+ getList (
219
+ @Param ( 'aid' ) aid : number ,
220
+ @QueryParams ( ) { pageSize, pageIndex } : BaseFilter
221
+ ) {
216
222
return AwardAssignmentController . getList (
217
223
'award' ,
218
- id ,
224
+ aid ,
219
225
pageSize ,
220
226
pageIndex
221
227
) ;
@@ -226,7 +232,10 @@ export class AwardAssignmentController {
226
232
export class TeamAwardAssignmentController {
227
233
@Get ( )
228
234
@ResponseSchema ( AwardAssignmentListChunk )
229
- getList ( @Param ( 'id' ) id : number , { pageSize, pageIndex } : BaseFilter ) {
235
+ getList (
236
+ @Param ( 'id' ) id : number ,
237
+ @QueryParams ( ) { pageSize, pageIndex } : BaseFilter
238
+ ) {
230
239
return AwardAssignmentController . getList (
231
240
'team' ,
232
241
id ,
0 commit comments