|
1 |
| -/* eslint-disable max-len */ |
| 1 | +/** |
| 2 | + * Endpoint to list project members. |
| 3 | + */ |
2 | 4 | import _ from 'lodash';
|
3 | 5 | import { middleware as tcMiddleware } from 'tc-core-library-js';
|
4 | 6 | import util from '../../util';
|
5 | 7 |
|
6 |
| -/** |
7 |
| - * API to add a project member. |
8 |
| - * add members directly (only managers and copilots) |
9 |
| - * user being added is current user |
10 |
| - */ |
11 | 8 | const permissions = tcMiddleware.permissions;
|
12 | 9 |
|
13 |
| - |
14 | 10 | module.exports = [
|
15 |
| - // handles request validations |
16 |
| - // validate(createProjectMemberValidations), |
17 |
| - permissions('project.getMember'), |
| 11 | + permissions('project.listMembers'), |
18 | 12 | async (req, res) => {
|
19 | 13 | let members = req.context.currentProjectMembers;
|
20 | 14 |
|
21 | 15 |
|
22 | 16 | if (members.length && _.get(req, 'query.fields')) {
|
23 | 17 | const fields = req.query.fields.split(',');
|
24 | 18 |
|
25 |
| - const ModelFields = ['id', 'userId', 'role', 'isPrimary', 'deletedAt', 'createdAt', 'updatedAt', 'deletedBy', 'createdBy', 'updatedBy']; |
| 19 | + const ModelFields = [ |
| 20 | + 'id', |
| 21 | + 'userId', |
| 22 | + 'role', |
| 23 | + 'isPrimary', |
| 24 | + 'deletedAt', |
| 25 | + 'createdAt', |
| 26 | + 'updatedAt', |
| 27 | + 'deletedBy', |
| 28 | + 'createdBy', |
| 29 | + 'updatedBy', |
| 30 | + ]; |
26 | 31 |
|
27 | 32 | const modelFields = _.intersection(ModelFields, fields);
|
28 | 33 | const hasUserIdField = _.indexOf(fields, 'userId') !== -1;
|
@@ -79,19 +84,22 @@ module.exports = [
|
79 | 84 | const traitsArr = _.find(traits, t => t[0].userId === m.userId);
|
80 | 85 | if (traitsArr) {
|
81 | 86 | if (traitFields[0] === 'photoURL') {
|
82 |
| - _.assign(m, { photoURL: _.get(_.find(traitsArr, t => t.traitId === 'basic_info'), 'traits.data[0].photoURL') }); |
| 87 | + _.assign(m, { |
| 88 | + photoURL: _.get(_.find(traitsArr, { traitId: 'basic_info' }), 'traits.data[0].photoURL'), |
| 89 | + }); |
83 | 90 | if (traitFields.length > 1) {
|
84 |
| - const traitInfo = _.get(_.find(traitsArr, t => t.traitId === 'connect_info'), 'traits.data[0]', {}); |
| 91 | + const traitInfo = _.get(_.find(traitsArr, { traitId: 'connect_info' }), 'traits.data[0]', {}); |
85 | 92 | _.assign(m, _.pick(traitInfo, connectInfoFields));
|
86 | 93 | }
|
87 | 94 | } else {
|
88 |
| - const traitInfo = _.get(_.find(traitsArr, t => t.traitId === 'connect_info'), 'traits.data[0]', {}); |
| 95 | + const traitInfo = _.get(_.find(traitsArr, { traitId: 'connect_info' }), 'traits.data[0]', {}); |
89 | 96 | _.assign(m, _.pick(traitInfo, connectInfoFields));
|
90 | 97 | }
|
91 | 98 | }
|
92 | 99 | });
|
93 | 100 | }
|
94 | 101 | } catch (e) {
|
| 102 | + logger.error('Error getting member details', e); |
95 | 103 | if (hasUserIdField === false) {
|
96 | 104 | members = _.map(members, m => _.omit(m, ['userId']));
|
97 | 105 | }
|
|
0 commit comments