diff --git a/test/api/v2/user/tasks/PUT-tasks_id.test.js b/test/api/v2/user/tasks/PUT-tasks_id.test.js index e2ac535ad6..037322a6b7 100644 --- a/test/api/v2/user/tasks/PUT-tasks_id.test.js +++ b/test/api/v2/user/tasks/PUT-tasks_id.test.js @@ -2,7 +2,7 @@ import { generateUser, } from '../../../../helpers/api-integration/v2'; -xdescribe('PUT /user/tasks/:id', () => { +describe('PUT /user/tasks/:id', () => { let user, task; beforeEach(async () => { diff --git a/website/src/controllers/api-v2/user.js b/website/src/controllers/api-v2/user.js index 66f95844bf..8587fed5ea 100644 --- a/website/src/controllers/api-v2/user.js +++ b/website/src/controllers/api-v2/user.js @@ -667,6 +667,29 @@ api.deleteTask = function(req, res, next) { }); }; +api.updateTask = function(req, res, next) { + var user = res.locals.user; + + Tasks.Task.findOne({ + _id: req.params.id, + userId: user._id + }, function(err, task) { + if(err) return next(err); + if(!task) return res.status(404).json({err: 'Task not found.'}) + + try { + _.assign(task, shared.ops.updateTask(task.toObject(), req)); + task.save(function(err, task){ + if(err) return next(err); + + return res.json(task.toJSONV2()); + }); + } catch (err) { + return res.status(err.code).json({err: err.message}); + } + }); +}; + api.addTask = function(req, res, next) { var user = res.locals.user; req.body.type = req.body.type || 'habit';