do not load inbox in tasks routes (#10302)

This commit is contained in:
Matteo Pagliazzi
2018-05-04 23:00:57 +02:00
committed by Sabe Jones
parent b7dfe41e15
commit 570a8bf0d5
2 changed files with 78 additions and 26 deletions

View File

@@ -159,7 +159,9 @@ let requiredGroupFields = '_id leader tasksOrder name';
api.createUserTasks = { api.createUserTasks = {
method: 'POST', method: 'POST',
url: '/tasks/user', url: '/tasks/user',
middlewares: [authWithHeaders()], middlewares: [authWithHeaders({
userFieldsToExclude: ['inbox'],
})],
async handler (req, res) { async handler (req, res) {
let user = res.locals.user; let user = res.locals.user;
let tasks = await createTasks(req, res, {user}); let tasks = await createTasks(req, res, {user});
@@ -230,7 +232,9 @@ api.createUserTasks = {
api.createChallengeTasks = { api.createChallengeTasks = {
method: 'POST', method: 'POST',
url: '/tasks/challenge/:challengeId', url: '/tasks/challenge/:challengeId',
middlewares: [authWithHeaders()], middlewares: [authWithHeaders({
userFieldsToExclude: ['inbox'],
})],
async handler (req, res) { async handler (req, res) {
req.checkParams('challengeId', res.t('challengeIdRequired')).notEmpty().isUUID(); req.checkParams('challengeId', res.t('challengeIdRequired')).notEmpty().isUUID();
@@ -284,7 +288,9 @@ api.createChallengeTasks = {
api.getUserTasks = { api.getUserTasks = {
method: 'GET', method: 'GET',
url: '/tasks/user', url: '/tasks/user',
middlewares: [authWithHeaders()], middlewares: [authWithHeaders({
userFieldsToExclude: ['inbox'],
})],
async handler (req, res) { async handler (req, res) {
let types = Tasks.tasksTypes.map(type => `${type}s`); let types = Tasks.tasksTypes.map(type => `${type}s`);
types.push('completedTodos', '_allCompletedTodos'); // _allCompletedTodos is currently in BETA and is likely to be removed in future types.push('completedTodos', '_allCompletedTodos'); // _allCompletedTodos is currently in BETA and is likely to be removed in future
@@ -322,7 +328,9 @@ api.getUserTasks = {
api.getChallengeTasks = { api.getChallengeTasks = {
method: 'GET', method: 'GET',
url: '/tasks/challenge/:challengeId', url: '/tasks/challenge/:challengeId',
middlewares: [authWithHeaders()], middlewares: [authWithHeaders({
userFieldsToExclude: ['inbox'],
})],
async handler (req, res) { async handler (req, res) {
req.checkParams('challengeId', res.t('challengeIdRequired')).notEmpty().isUUID(); req.checkParams('challengeId', res.t('challengeIdRequired')).notEmpty().isUUID();
let types = Tasks.tasksTypes.map(type => `${type}s`); let types = Tasks.tasksTypes.map(type => `${type}s`);
@@ -372,7 +380,9 @@ api.getChallengeTasks = {
api.getTask = { api.getTask = {
method: 'GET', method: 'GET',
url: '/tasks/:taskId', url: '/tasks/:taskId',
middlewares: [authWithHeaders()], middlewares: [authWithHeaders({
userFieldsToExclude: ['inbox'],
})],
async handler (req, res) { async handler (req, res) {
let user = res.locals.user; let user = res.locals.user;
let taskId = req.params.taskId; let taskId = req.params.taskId;
@@ -426,7 +436,9 @@ api.getTask = {
api.updateTask = { api.updateTask = {
method: 'PUT', method: 'PUT',
url: '/tasks/:taskId', url: '/tasks/:taskId',
middlewares: [authWithHeaders()], middlewares: [authWithHeaders({
userFieldsToExclude: ['inbox'],
})],
async handler (req, res) { async handler (req, res) {
let user = res.locals.user; let user = res.locals.user;
let challenge; let challenge;
@@ -538,7 +550,9 @@ api.updateTask = {
api.scoreTask = { api.scoreTask = {
method: 'POST', method: 'POST',
url: '/tasks/:taskId/score/:direction', url: '/tasks/:taskId/score/:direction',
middlewares: [authWithHeaders()], middlewares: [authWithHeaders({
userFieldsToExclude: ['inbox'],
})],
async handler (req, res) { async handler (req, res) {
req.checkParams('direction', res.t('directionUpDown')).notEmpty().isIn(['up', 'down']); req.checkParams('direction', res.t('directionUpDown')).notEmpty().isIn(['up', 'down']);
@@ -709,7 +723,9 @@ api.scoreTask = {
api.moveTask = { api.moveTask = {
method: 'POST', method: 'POST',
url: '/tasks/:taskId/move/to/:position', url: '/tasks/:taskId/move/to/:position',
middlewares: [authWithHeaders()], middlewares: [authWithHeaders({
userFieldsToExclude: ['inbox'],
})],
async handler (req, res) { async handler (req, res) {
req.checkParams('taskId', apiError('taskIdRequired')).notEmpty(); req.checkParams('taskId', apiError('taskIdRequired')).notEmpty();
req.checkParams('position', res.t('positionRequired')).notEmpty().isNumeric(); req.checkParams('position', res.t('positionRequired')).notEmpty().isNumeric();
@@ -778,7 +794,9 @@ api.moveTask = {
api.addChecklistItem = { api.addChecklistItem = {
method: 'POST', method: 'POST',
url: '/tasks/:taskId/checklist', url: '/tasks/:taskId/checklist',
middlewares: [authWithHeaders()], middlewares: [authWithHeaders({
userFieldsToExclude: ['inbox'],
})],
async handler (req, res) { async handler (req, res) {
let user = res.locals.user; let user = res.locals.user;
let challenge; let challenge;
@@ -838,7 +856,9 @@ api.addChecklistItem = {
api.scoreCheckListItem = { api.scoreCheckListItem = {
method: 'POST', method: 'POST',
url: '/tasks/:taskId/checklist/:itemId/score', url: '/tasks/:taskId/checklist/:itemId/score',
middlewares: [authWithHeaders()], middlewares: [authWithHeaders({
userFieldsToExclude: ['inbox'],
})],
async handler (req, res) { async handler (req, res) {
let user = res.locals.user; let user = res.locals.user;
@@ -892,7 +912,9 @@ api.scoreCheckListItem = {
api.updateChecklistItem = { api.updateChecklistItem = {
method: 'PUT', method: 'PUT',
url: '/tasks/:taskId/checklist/:itemId', url: '/tasks/:taskId/checklist/:itemId',
middlewares: [authWithHeaders()], middlewares: [authWithHeaders({
userFieldsToExclude: ['inbox'],
})],
async handler (req, res) { async handler (req, res) {
let user = res.locals.user; let user = res.locals.user;
let challenge; let challenge;
@@ -957,7 +979,9 @@ api.updateChecklistItem = {
api.removeChecklistItem = { api.removeChecklistItem = {
method: 'DELETE', method: 'DELETE',
url: '/tasks/:taskId/checklist/:itemId', url: '/tasks/:taskId/checklist/:itemId',
middlewares: [authWithHeaders()], middlewares: [authWithHeaders({
userFieldsToExclude: ['inbox'],
})],
async handler (req, res) { async handler (req, res) {
let user = res.locals.user; let user = res.locals.user;
let challenge; let challenge;
@@ -1020,7 +1044,9 @@ api.removeChecklistItem = {
api.addTagToTask = { api.addTagToTask = {
method: 'POST', method: 'POST',
url: '/tasks/:taskId/tags/:tagId', url: '/tasks/:taskId/tags/:tagId',
middlewares: [authWithHeaders()], middlewares: [authWithHeaders({
userFieldsToExclude: ['inbox'],
})],
async handler (req, res) { async handler (req, res) {
let user = res.locals.user; let user = res.locals.user;
@@ -1069,7 +1095,9 @@ api.addTagToTask = {
api.removeTagFromTask = { api.removeTagFromTask = {
method: 'DELETE', method: 'DELETE',
url: '/tasks/:taskId/tags/:tagId', url: '/tasks/:taskId/tags/:tagId',
middlewares: [authWithHeaders()], middlewares: [authWithHeaders({
userFieldsToExclude: ['inbox'],
})],
async handler (req, res) { async handler (req, res) {
let user = res.locals.user; let user = res.locals.user;
@@ -1114,7 +1142,9 @@ api.removeTagFromTask = {
api.unlinkAllTasks = { api.unlinkAllTasks = {
method: 'POST', method: 'POST',
url: '/tasks/unlink-all/:challengeId', url: '/tasks/unlink-all/:challengeId',
middlewares: [authWithHeaders()], middlewares: [authWithHeaders({
userFieldsToExclude: ['inbox'],
})],
async handler (req, res) { async handler (req, res) {
req.checkParams('challengeId', res.t('challengeIdRequired')).notEmpty().isUUID(); req.checkParams('challengeId', res.t('challengeIdRequired')).notEmpty().isUUID();
req.checkQuery('keep', apiError('keepOrRemoveAll')).notEmpty().isIn(['keep-all', 'remove-all']); req.checkQuery('keep', apiError('keepOrRemoveAll')).notEmpty().isIn(['keep-all', 'remove-all']);
@@ -1181,7 +1211,9 @@ api.unlinkAllTasks = {
api.unlinkOneTask = { api.unlinkOneTask = {
method: 'POST', method: 'POST',
url: '/tasks/unlink-one/:taskId', url: '/tasks/unlink-one/:taskId',
middlewares: [authWithHeaders()], middlewares: [authWithHeaders({
userFieldsToExclude: ['inbox'],
})],
async handler (req, res) { async handler (req, res) {
req.checkParams('taskId', apiError('taskIdRequired')).notEmpty().isUUID(); req.checkParams('taskId', apiError('taskIdRequired')).notEmpty().isUUID();
req.checkQuery('keep', apiError('keepOrRemove')).notEmpty().isIn(['keep', 'remove']); req.checkQuery('keep', apiError('keepOrRemove')).notEmpty().isIn(['keep', 'remove']);
@@ -1231,7 +1263,9 @@ api.unlinkOneTask = {
api.clearCompletedTodos = { api.clearCompletedTodos = {
method: 'POST', method: 'POST',
url: '/tasks/clearCompletedTodos', url: '/tasks/clearCompletedTodos',
middlewares: [authWithHeaders()], middlewares: [authWithHeaders({
userFieldsToExclude: ['inbox'],
})],
async handler (req, res) { async handler (req, res) {
let user = res.locals.user; let user = res.locals.user;
@@ -1282,7 +1316,9 @@ api.clearCompletedTodos = {
api.deleteTask = { api.deleteTask = {
method: 'DELETE', method: 'DELETE',
url: '/tasks/:taskId', url: '/tasks/:taskId',
middlewares: [authWithHeaders()], middlewares: [authWithHeaders({
userFieldsToExclude: ['inbox'],
})],
async handler (req, res) { async handler (req, res) {
let user = res.locals.user; let user = res.locals.user;
let challenge; let challenge;

View File

@@ -39,7 +39,9 @@ let api = {};
api.createGroupTasks = { api.createGroupTasks = {
method: 'POST', method: 'POST',
url: '/tasks/group/:groupId', url: '/tasks/group/:groupId',
middlewares: [authWithHeaders()], middlewares: [authWithHeaders({
userFieldsToExclude: ['inbox'],
})],
async handler (req, res) { async handler (req, res) {
req.checkParams('groupId', apiError('groupIdRequired')).notEmpty().isUUID(); req.checkParams('groupId', apiError('groupIdRequired')).notEmpty().isUUID();
@@ -83,7 +85,9 @@ api.createGroupTasks = {
api.getGroupTasks = { api.getGroupTasks = {
method: 'GET', method: 'GET',
url: '/tasks/group/:groupId', url: '/tasks/group/:groupId',
middlewares: [authWithHeaders()], middlewares: [authWithHeaders({
userFieldsToExclude: ['inbox'],
})],
async handler (req, res) { async handler (req, res) {
req.checkParams('groupId', apiError('groupIdRequired')).notEmpty().isUUID(); req.checkParams('groupId', apiError('groupIdRequired')).notEmpty().isUUID();
req.checkQuery('type', res.t('invalidTasksType')).optional().isIn(types); req.checkQuery('type', res.t('invalidTasksType')).optional().isIn(types);
@@ -116,7 +120,9 @@ api.getGroupTasks = {
api.groupMoveTask = { api.groupMoveTask = {
method: 'POST', method: 'POST',
url: '/group-tasks/:taskId/move/to/:position', url: '/group-tasks/:taskId/move/to/:position',
middlewares: [authWithHeaders()], middlewares: [authWithHeaders({
userFieldsToExclude: ['inbox'],
})],
async handler (req, res) { async handler (req, res) {
req.checkParams('taskId', apiError('taskIdRequired')).notEmpty(); req.checkParams('taskId', apiError('taskIdRequired')).notEmpty();
req.checkParams('position', res.t('positionRequired')).notEmpty().isNumeric(); req.checkParams('position', res.t('positionRequired')).notEmpty().isNumeric();
@@ -167,7 +173,9 @@ api.groupMoveTask = {
api.assignTask = { api.assignTask = {
method: 'POST', method: 'POST',
url: '/tasks/:taskId/assign/:assignedUserId', url: '/tasks/:taskId/assign/:assignedUserId',
middlewares: [authWithHeaders()], middlewares: [authWithHeaders({
userFieldsToExclude: ['inbox'],
})],
async handler (req, res) { async handler (req, res) {
req.checkParams('taskId', apiError('taskIdRequired')).notEmpty().isUUID(); req.checkParams('taskId', apiError('taskIdRequired')).notEmpty().isUUID();
req.checkParams('assignedUserId', res.t('userIdRequired')).notEmpty().isUUID(); req.checkParams('assignedUserId', res.t('userIdRequired')).notEmpty().isUUID();
@@ -227,7 +235,9 @@ api.assignTask = {
api.unassignTask = { api.unassignTask = {
method: 'POST', method: 'POST',
url: '/tasks/:taskId/unassign/:assignedUserId', url: '/tasks/:taskId/unassign/:assignedUserId',
middlewares: [authWithHeaders()], middlewares: [authWithHeaders({
userFieldsToExclude: ['inbox'],
})],
async handler (req, res) { async handler (req, res) {
req.checkParams('taskId', apiError('taskIdRequired')).notEmpty().isUUID(); req.checkParams('taskId', apiError('taskIdRequired')).notEmpty().isUUID();
req.checkParams('assignedUserId', res.t('userIdRequired')).notEmpty().isUUID(); req.checkParams('assignedUserId', res.t('userIdRequired')).notEmpty().isUUID();
@@ -277,7 +287,9 @@ api.unassignTask = {
api.approveTask = { api.approveTask = {
method: 'POST', method: 'POST',
url: '/tasks/:taskId/approve/:userId', url: '/tasks/:taskId/approve/:userId',
middlewares: [authWithHeaders()], middlewares: [authWithHeaders({
userFieldsToExclude: ['inbox'],
})],
async handler (req, res) { async handler (req, res) {
req.checkParams('taskId', apiError('taskIdRequired')).notEmpty().isUUID(); req.checkParams('taskId', apiError('taskIdRequired')).notEmpty().isUUID();
req.checkParams('userId', res.t('userIdRequired')).notEmpty().isUUID(); req.checkParams('userId', res.t('userIdRequired')).notEmpty().isUUID();
@@ -373,7 +385,9 @@ api.approveTask = {
api.taskNeedsWork = { api.taskNeedsWork = {
method: 'POST', method: 'POST',
url: '/tasks/:taskId/needs-work/:userId', url: '/tasks/:taskId/needs-work/:userId',
middlewares: [authWithHeaders()], middlewares: [authWithHeaders({
userFieldsToExclude: ['inbox'],
})],
async handler (req, res) { async handler (req, res) {
req.checkParams('taskId', apiError('taskIdRequired')).notEmpty().isUUID(); req.checkParams('taskId', apiError('taskIdRequired')).notEmpty().isUUID();
req.checkParams('userId', res.t('userIdRequired')).notEmpty().isUUID(); req.checkParams('userId', res.t('userIdRequired')).notEmpty().isUUID();
@@ -470,7 +484,9 @@ api.taskNeedsWork = {
api.getGroupApprovals = { api.getGroupApprovals = {
method: 'GET', method: 'GET',
url: '/approvals/group/:groupId', url: '/approvals/group/:groupId',
middlewares: [authWithHeaders()], middlewares: [authWithHeaders({
userFieldsToExclude: ['inbox'],
})],
async handler (req, res) { async handler (req, res) {
req.checkParams('groupId', apiError('groupIdRequired')).notEmpty().isUUID(); req.checkParams('groupId', apiError('groupIdRequired')).notEmpty().isUUID();