From 2173f53883a1c11d3a19e5c0260a8fa4e671ec47 Mon Sep 17 00:00:00 2001 From: Keith Holliday Date: Sat, 8 Oct 2016 06:35:53 -0500 Subject: [PATCH] Added fields for more approver details --- .../tasks/groups/POST-group_tasks_id_approve_userId.test.js | 2 ++ website/server/controllers/api-v3/tasks/groups.js | 2 ++ website/server/models/task.js | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/test/api/v3/integration/tasks/groups/POST-group_tasks_id_approve_userId.test.js b/test/api/v3/integration/tasks/groups/POST-group_tasks_id_approve_userId.test.js index 2409b7c324..bc7cdf5522 100644 --- a/test/api/v3/integration/tasks/groups/POST-group_tasks_id_approve_userId.test.js +++ b/test/api/v3/integration/tasks/groups/POST-group_tasks_id_approve_userId.test.js @@ -59,5 +59,7 @@ describe('POST /tasks/:id/approve/:userId', () => { let syncedTask = find(memberTasks, findAssignedTask); expect(syncedTask.approved).to.be.true; + expect(syncedTask.approvingUser).to.equal(user._id); + expect(syncedTask.approvedDate).to.be.a('string'); // date gets converted to a string as json doesn't have a Date type }); }); diff --git a/website/server/controllers/api-v3/tasks/groups.js b/website/server/controllers/api-v3/tasks/groups.js index 426ac0bbfc..7f160133a1 100644 --- a/website/server/controllers/api-v3/tasks/groups.js +++ b/website/server/controllers/api-v3/tasks/groups.js @@ -219,6 +219,8 @@ api.approveTask = { if (group.leader !== user._id) throw new NotAuthorized(res.t('onlyGroupLeaderCanEditTasks')); + task.approvedDate = new Date(); + task.approvingUser = user._id; task.approved = true; await task.save(); diff --git a/website/server/models/task.js b/website/server/models/task.js index ad31454391..dfe9bc593f 100644 --- a/website/server/models/task.js +++ b/website/server/models/task.js @@ -74,7 +74,7 @@ export let TaskSchema = new Schema({ requiresApproval: {type: Boolean, default: false}, approved: {type: Boolean, default: false}, approvedDate: {type: Date}, - approvingUser: [{type: String, ref: 'User', validate: [validator.isUUID, 'Invalid uuid.']}], + approvingUser: {type: String, ref: 'User', validate: [validator.isUUID, 'Invalid uuid.']}, approvalRequested: {type: Boolean, default: false}, approvalRequestedDate: {type: Date},