1
1
const { INTERNAL_SERVER_ERROR , SOMETHING_WENT_WRONG } = require ( "../constants/errorMessages" ) ;
2
- const { TASK_REQUEST_TYPE , MIGRATION_TYPE } = require ( "../constants/taskRequests" ) ;
2
+ const { TASK_REQUEST_TYPE , MIGRATION_TYPE , TASK_REQUEST_ACTIONS } = require ( "../constants/taskRequests" ) ;
3
3
const { addLog } = require ( "../models/logs" ) ;
4
4
const taskRequestsModel = require ( "../models/taskRequests" ) ;
5
5
const tasksModel = require ( "../models/tasks.js" ) ;
@@ -97,7 +97,7 @@ const addTaskRequests = async (req, res) => {
97
97
break ;
98
98
}
99
99
}
100
- const newTaskRequest = await taskRequestsModel . createRequest ( taskRequestData , req . userData . username ) ;
100
+ const newTaskRequest = await taskRequestsModel . createRequest ( taskRequestData , req . userData . id ) ;
101
101
102
102
if ( newTaskRequest . isCreationRequestApproved ) {
103
103
return res . boom . conflict ( "Task exists for the given issue." ) ;
@@ -111,9 +111,9 @@ const addTaskRequests = async (req, res) => {
111
111
meta : {
112
112
taskRequestId : newTaskRequest . id ,
113
113
action : "create" ,
114
- createdBy : req . userData . username ,
114
+ createdBy : req . userData . id ,
115
115
createdAt : Date . now ( ) ,
116
- lastModifiedBy : req . userData . username ,
116
+ lastModifiedBy : req . userData . id ,
117
117
lastModifiedAt : Date . now ( ) ,
118
118
} ,
119
119
body : newTaskRequest . taskRequest ,
@@ -169,45 +169,62 @@ const addOrUpdate = async (req, res) => {
169
169
}
170
170
} ;
171
171
172
- const approveTaskRequest = async ( req , res ) => {
172
+ const updateTaskRequests = async ( req , res ) => {
173
173
try {
174
174
const { taskRequestId, user } = req . body ;
175
175
if ( ! taskRequestId ) {
176
176
return res . boom . badRequest ( "taskRequestId not provided" ) ;
177
177
}
178
178
179
- const response = await taskRequestsModel . approveTaskRequest ( taskRequestId , user ) ;
179
+ const { action = TASK_REQUEST_ACTIONS . APPROVE } = req . query ;
180
180
181
- if ( response . taskRequestNotFound ) {
181
+ let updateTaskRequestResponse = { } ;
182
+ switch ( action ) {
183
+ case TASK_REQUEST_ACTIONS . APPROVE : {
184
+ updateTaskRequestResponse = await taskRequestsModel . approveTaskRequest ( taskRequestId , user , req . userData . id ) ;
185
+ break ;
186
+ }
187
+ case TASK_REQUEST_ACTIONS . REJECT : {
188
+ updateTaskRequestResponse = await taskRequestsModel . rejectTaskRequest ( taskRequestId , req . userData . id ) ;
189
+ break ;
190
+ }
191
+ default : {
192
+ return res . boom . badRequest ( "Unknown action" ) ;
193
+ }
194
+ }
195
+
196
+ if ( updateTaskRequestResponse . taskRequestNotFound ) {
182
197
return res . boom . badRequest ( "Task request not found." ) ;
183
198
}
184
- if ( response . isUserInvalid ) {
199
+ if ( updateTaskRequestResponse . isUserInvalid ) {
185
200
return res . boom . badRequest ( "User request not available." ) ;
186
201
}
187
- if ( response . isTaskRequestInvalid ) {
202
+ if ( updateTaskRequestResponse . isTaskRequestInvalid ) {
188
203
return res . boom . badRequest ( "Task request was previously approved or rejected." ) ;
189
204
}
190
205
191
- await updateUserStatusOnTaskUpdate ( user . username ) ;
206
+ if ( action && action === TASK_REQUEST_ACTIONS . APPROVE ) {
207
+ await updateUserStatusOnTaskUpdate ( user . username ) ;
208
+ }
192
209
193
210
const taskRequestLog = {
194
211
type : "taskRequests" ,
195
212
meta : {
196
213
taskRequestId : taskRequestId ,
197
214
action : "update" ,
198
- subAction : "approve" ,
199
- createdBy : req . userData . username ,
215
+ subAction : action ,
216
+ createdBy : req . userData . id ,
200
217
createdAt : Date . now ( ) ,
201
- lastModifiedBy : req . userData . username ,
218
+ lastModifiedBy : req . userData . id ,
202
219
lastModifiedAt : Date . now ( ) ,
203
220
} ,
204
- body : response . taskRequest ,
221
+ body : updateTaskRequestResponse . taskRequest ,
205
222
} ;
206
223
await addLog ( taskRequestLog . type , taskRequestLog . meta , taskRequestLog . body ) ;
207
224
208
225
return res . status ( 200 ) . json ( {
209
- message : `Task successfully assigned to user ${ response . approvedTo } ` ,
210
- taskRequest : response . taskRequest ,
226
+ message : `Task updated successfully. ` ,
227
+ taskRequest : updateTaskRequestResponse ? .taskRequest ,
211
228
} ) ;
212
229
} catch ( err ) {
213
230
logger . error ( "Error while approving task request" , err ) ;
@@ -228,6 +245,10 @@ const migrateTaskRequests = async (req, res) => {
228
245
responseData = await taskRequestsModel . removeOldField ( ) ;
229
246
break ;
230
247
}
248
+ case MIGRATION_TYPE . ADD_COUNT_CREATED : {
249
+ responseData = await taskRequestsModel . addUsersCountAndCreatedAt ( ) ;
250
+ break ;
251
+ }
231
252
default : {
232
253
return res . boom . badRequest ( "Unknown action" ) ;
233
254
}
@@ -239,7 +260,7 @@ const migrateTaskRequests = async (req, res) => {
239
260
}
240
261
} ;
241
262
module . exports = {
242
- approveTaskRequest ,
263
+ updateTaskRequests ,
243
264
addOrUpdate,
244
265
fetchTaskRequests,
245
266
fetchTaskRequestById,
0 commit comments