From 13cbf03759fa8c95c2dadb0fde6370744d1f1f14 Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Tue, 15 Dec 2015 12:11:32 +0100 Subject: [PATCH] use cron middleware --- ...LETE-tasks_taskId_checklist_itemId.test.js | 0 .../POST-tasks_taskId_checklist.test.js | 0 ...asks_taskId_checklist_itemId_score.test.js | 0 .../PUT-tasks_taskId_checklist_itemId.test.js | 0 website/src/controllers/api-v3/auth.js | 5 +++- website/src/controllers/api-v3/tags.js | 11 ++++---- website/src/controllers/api-v3/tasks.js | 27 ++++++++++--------- website/src/controllers/api-v3/user.js | 3 ++- website/src/middlewares/api-v3/cron.js | 1 + 9 files changed, 27 insertions(+), 20 deletions(-) create mode 100644 test/api/v3/integration/tasks/checklists/DELETE-tasks_taskId_checklist_itemId.test.js create mode 100644 test/api/v3/integration/tasks/checklists/POST-tasks_taskId_checklist.test.js create mode 100644 test/api/v3/integration/tasks/checklists/POST-tasks_taskId_checklist_itemId_score.test.js create mode 100644 test/api/v3/integration/tasks/checklists/PUT-tasks_taskId_checklist_itemId.test.js diff --git a/test/api/v3/integration/tasks/checklists/DELETE-tasks_taskId_checklist_itemId.test.js b/test/api/v3/integration/tasks/checklists/DELETE-tasks_taskId_checklist_itemId.test.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/api/v3/integration/tasks/checklists/POST-tasks_taskId_checklist.test.js b/test/api/v3/integration/tasks/checklists/POST-tasks_taskId_checklist.test.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/api/v3/integration/tasks/checklists/POST-tasks_taskId_checklist_itemId_score.test.js b/test/api/v3/integration/tasks/checklists/POST-tasks_taskId_checklist_itemId_score.test.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/api/v3/integration/tasks/checklists/PUT-tasks_taskId_checklist_itemId.test.js b/test/api/v3/integration/tasks/checklists/PUT-tasks_taskId_checklist_itemId.test.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/website/src/controllers/api-v3/auth.js b/website/src/controllers/api-v3/auth.js index 6693dba861..2c7e00cadc 100644 --- a/website/src/controllers/api-v3/auth.js +++ b/website/src/controllers/api-v3/auth.js @@ -1,6 +1,7 @@ import validator from 'validator'; import passport from 'passport'; import { authWithHeaders } from '../../middlewares/api-v3/auth'; +import cron from '../../middlewares/api-v3/cron'; import { NotAuthorized, } from '../../libs/api-v3/errors'; @@ -138,6 +139,7 @@ function _loginRes (user, req, res, next) { api.loginLocal = { method: 'POST', url: '/user/auth/local/login', + middlewares: [cron], handler (req, res, next) { req.checkBody({ username: { @@ -182,6 +184,7 @@ api.loginLocal = { api.loginSocial = { method: 'POST', url: '/user/auth/social', // this isn't the most appropriate url but must be the same as v2 + middlewares: [cron], handler (req, res, next) { let accessToken = req.body.authResponse.access_token; let network = req.body.network; @@ -247,7 +250,7 @@ api.loginSocial = { api.deleteSocial = { method: 'DELETE', url: '/user/auth/social/:network', - middlewares: [authWithHeaders()], + middlewares: [authWithHeaders(), cron], handler (req, res, next) { let user = res.locals.user; let network = req.params.network; diff --git a/website/src/controllers/api-v3/tags.js b/website/src/controllers/api-v3/tags.js index db601e968e..20d3f2f5ed 100644 --- a/website/src/controllers/api-v3/tags.js +++ b/website/src/controllers/api-v3/tags.js @@ -1,4 +1,5 @@ import { authWithHeaders } from '../../middlewares/api-v3/auth'; +import cron from '../../middlewares/api-v3/cron'; import { model as Tag } from '../../models/tag'; import { NotFound, @@ -18,7 +19,7 @@ let api = {}; api.createTag = { method: 'POST', url: '/tags', - middlewares: [authWithHeaders()], + middlewares: [authWithHeaders(), cron], handler (req, res, next) { let user = res.locals.user; @@ -45,7 +46,7 @@ api.createTag = { api.getTags = { method: 'GET', url: '/tags', - middlewares: [authWithHeaders()], + middlewares: [authWithHeaders(), cron], handler (req, res) { let user = res.locals.user; res.respond(200, user.tags); @@ -65,7 +66,7 @@ api.getTags = { api.getTag = { method: 'GET', url: '/tags/:tagId', - middlewares: [authWithHeaders()], + middlewares: [authWithHeaders(), cron], handler (req, res, next) { let user = res.locals.user; @@ -93,7 +94,7 @@ api.getTag = { api.updateTag = { method: 'PUT', url: '/tags/:tagId', - middlewares: [authWithHeaders()], + middlewares: [authWithHeaders(), cron], handler (req, res, next) { let user = res.locals.user; @@ -129,7 +130,7 @@ api.updateTag = { api.deleteTag = { method: 'DELETE', url: '/tags/:tagId', - middlewares: [authWithHeaders()], + middlewares: [authWithHeaders(), cron], handler (req, res, next) { let user = res.locals.user; diff --git a/website/src/controllers/api-v3/tasks.js b/website/src/controllers/api-v3/tasks.js index 818362efc9..019b7c058c 100644 --- a/website/src/controllers/api-v3/tasks.js +++ b/website/src/controllers/api-v3/tasks.js @@ -1,4 +1,5 @@ import { authWithHeaders } from '../../middlewares/api-v3/auth'; +import cron from '../../middlewares/api-v3/cron'; import { sendTaskWebhook } from '../../libs/api-v3/webhook'; import * as Tasks from '../../models/task'; import { @@ -26,7 +27,7 @@ let api = {}; api.createTask = { method: 'POST', url: '/tasks', - middlewares: [authWithHeaders()], + middlewares: [authWithHeaders(), cron], handler (req, res, next) { req.checkBody('type', res.t('invalidTaskType')).notEmpty().isIn(Tasks.tasksTypes); @@ -64,7 +65,7 @@ api.createTask = { api.getTasks = { method: 'GET', url: '/tasks', - middlewares: [authWithHeaders()], + middlewares: [authWithHeaders(), cron], handler (req, res, next) { req.checkQuery('type', res.t('invalidTaskType')).optional().isIn(Tasks.tasksTypes); @@ -120,7 +121,7 @@ api.getTasks = { api.getTask = { method: 'GET', url: '/tasks/:taskId', - middlewares: [authWithHeaders()], + middlewares: [authWithHeaders(), cron], handler (req, res, next) { let user = res.locals.user; @@ -154,7 +155,7 @@ api.getTask = { api.updateTask = { method: 'PUT', url: '/tasks/:taskId', - middlewares: [authWithHeaders()], + middlewares: [authWithHeaders(), cron], handler (req, res, next) { let user = res.locals.user; @@ -236,7 +237,7 @@ function _generateWebhookTaskData (task, direction, delta, stats, user) { api.scoreTask = { method: 'POST', url: '/tasks/:taskId/score/:direction', - middlewares: [authWithHeaders()], + middlewares: [authWithHeaders(), cron], handler (req, res, next) { req.checkParams('taskId', res.t('taskIdRequired')).notEmpty().isUUID(); req.checkParams('direction', res.t('directionUpDown')).notEmpty().isIn(['up', 'down']); // TODO what about rewards? maybe separate route? @@ -297,7 +298,7 @@ api.scoreTask = { api.moveTask = { method: 'POST', url: '/tasks/move/:taskId/to/:position', - middlewares: [authWithHeaders()], + middlewares: [authWithHeaders(), cron], handler (req, res, next) { req.checkParams('taskId', res.t('taskIdRequired')).notEmpty().isUUID(); req.checkParams('position', res.t('positionRequired')).notEmpty().isNumeric(); @@ -349,7 +350,7 @@ api.moveTask = { api.addChecklistItem = { method: 'POST', url: '/tasks/:taskId/checklist', - middlewares: [authWithHeaders()], + middlewares: [authWithHeaders(), cron], handler (req, res, next) { let user = res.locals.user; @@ -389,7 +390,7 @@ api.addChecklistItem = { api.scoreCheckListItem = { method: 'POST', url: '/tasks/:taskId/checklist/:itemId/score', - middlewares: [authWithHeaders()], + middlewares: [authWithHeaders(), cron], handler (req, res, next) { let user = res.locals.user; @@ -432,7 +433,7 @@ api.scoreCheckListItem = { api.updateChecklistItem = { method: 'PUT', url: '/tasks/:taskId/checklist/:itemId', - middlewares: [authWithHeaders()], + middlewares: [authWithHeaders(), cron], handler (req, res, next) { let user = res.locals.user; @@ -476,7 +477,7 @@ api.updateChecklistItem = { api.removeChecklistItem = { method: 'DELETE', url: '/tasks/:taskId/checklist/:itemId', - middlewares: [authWithHeaders()], + middlewares: [authWithHeaders(), cron], handler (req, res, next) { let user = res.locals.user; @@ -519,7 +520,7 @@ api.removeChecklistItem = { api.addTagToTask = { method: 'POST', url: '/tasks/:taskId/tags/:tagId', - middlewares: [authWithHeaders()], + middlewares: [authWithHeaders(), cron], handler (req, res, next) { let user = res.locals.user; @@ -563,7 +564,7 @@ api.addTagToTask = { api.removeTagFromTask = { method: 'DELETE', url: '/tasks/:taskId/tags/:tagId', - middlewares: [authWithHeaders()], + middlewares: [authWithHeaders(), cron], handler (req, res, next) { let user = res.locals.user; @@ -620,7 +621,7 @@ function _removeTaskTasksOrder (user, taskId) { api.deleteTask = { method: 'DELETE', url: '/tasks/:taskId', - middlewares: [authWithHeaders()], + middlewares: [authWithHeaders(), cron], handler (req, res, next) { let user = res.locals.user; diff --git a/website/src/controllers/api-v3/user.js b/website/src/controllers/api-v3/user.js index 498841474f..ef6749209c 100644 --- a/website/src/controllers/api-v3/user.js +++ b/website/src/controllers/api-v3/user.js @@ -1,4 +1,5 @@ import { authWithHeaders } from '../../middlewares/api-v3/auth'; +import cron from '../../middlewares/api-v3/cron'; import common from '../../../../common'; let api = {}; @@ -13,7 +14,7 @@ let api = {}; */ api.getUser = { method: 'GET', - middlewares: [authWithHeaders()], + middlewares: [authWithHeaders(), cron], url: '/user', handler (req, res) { let user = res.locals.user.toJSON(); diff --git a/website/src/middlewares/api-v3/cron.js b/website/src/middlewares/api-v3/cron.js index d71c123346..d0c24d700d 100644 --- a/website/src/middlewares/api-v3/cron.js +++ b/website/src/middlewares/api-v3/cron.js @@ -7,6 +7,7 @@ import common from '../../../../common'; import Task from '../../models/task'; // import Group from '../../models/group'; +// TODO check that it's usef everywhere export default function cronMiddleware (req, res, next) { let user = res.locals.user; let analytics = res.analytics;