From ec03bbe260e3a7e1298ac7cf526b41c7d2207e91 Mon Sep 17 00:00:00 2001 From: Nico Date: Sun, 3 May 2020 01:29:28 +0200 Subject: API add boards to json where user is member of --- models/users.js | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) (limited to 'models/users.js') diff --git a/models/users.js b/models/users.js index a1bc5b0f..1a021bb7 100644 --- a/models/users.js +++ b/models/users.js @@ -1240,6 +1240,25 @@ if (Meteor.isServer) { Authentication.checkLoggedIn(req.userId); const data = Meteor.users.findOne({ _id: req.userId }); delete data.services; + + // get all boards where the user is member of + let boards = Boards.find( + { + type: 'board', + 'members.userId': req.userId, + }, + { + fields: { _id: 1, members: 1 }, + }, + ); + boards = boards.map(b => { + const u = b.members.find(m => m.userId === req.userId); + delete u.userId; + u.boardId = b._id; + return u; + }); + + data.boards = boards; JsonRoutes.sendResult(res, { code: 200, data, @@ -1292,9 +1311,29 @@ if (Meteor.isServer) { try { Authentication.checkUserId(req.userId); const id = req.params.userId; + + // get all boards where the user is member of + let boards = Boards.find( + { + type: 'board', + 'members.userId': id, + }, + { + fields: { _id: 1, members: 1 }, + }, + ); + boards = boards.map(b => { + const u = b.members.find(m => m.userId === id); + delete u.userId; + u.boardId = b._id; + return u; + }); + + const user = Meteor.users.findOne({ _id: id }); + user.boards = boards; JsonRoutes.sendResult(res, { code: 200, - data: Meteor.users.findOne({ _id: id }), + data: user, }); } catch (error) { JsonRoutes.sendResult(res, { -- cgit v1.2.3-1-g7c22