Skip to content

Commit a7e6990

Browse files
authored
Merge pull request #659 from eisbilir/feature/new-milestone-concept
Updated member details in Phase Copilot details to include only photoURL, id, and handle.
2 parents f6c0657 + 4f5152c commit a7e6990

File tree

2 files changed

+22
-21
lines changed

2 files changed

+22
-21
lines changed

src/routes/phases/get.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ import util from '../../util';
55
import models from '../../models';
66

77
const permissions = tcMiddleware.permissions;
8-
const populateMemberDetails = async (phase, logger, id) => {
9-
if (phase.members && phase.members.length > 0) {
10-
const details = await util.getMemberDetailsByUserIds(_.map(phase.members, 'userId'), logger, id);
11-
_.forEach(phase.members, (member) => {
12-
_.assign(member, _.find(details, detail => detail.userId === member.userId));
13-
});
8+
const populateMemberDetails = async (phase, req) => {
9+
const members = _.map(phase.members, member => _.pick(member, 'userId'));
10+
try {
11+
const detailedMembers = await util.getObjectsWithMemberDetails(members, ['userId', 'handle', 'photoURL'], req);
12+
return _.assign(phase, { members: detailedMembers });
13+
} catch (err) {
14+
return _.assign(phase, { members });
1415
}
15-
return phase;
1616
};
1717
module.exports = [
1818
permissions('project.view'),
@@ -60,14 +60,14 @@ module.exports = [
6060
err.status = 404;
6161
throw err;
6262
}
63-
return populateMemberDetails(phase.toJSON(), req.log, req.id)
63+
return populateMemberDetails(phase.toJSON(), req)
6464
.then(result => res.json(result));
6565
})
6666
.catch(err => next(err));
6767
}
6868
req.log.debug('phase found in ES');
6969
// eslint-disable-next-line no-underscore-dangle
70-
return populateMemberDetails(data[0].inner_hits.phases.hits.hits[0]._source, req.log, req.id)
70+
return populateMemberDetails(data[0].inner_hits.phases.hits.hits[0]._source, req)
7171
.then(phase => res.json(phase));
7272
})
7373
.catch(next);

src/routes/phases/list.js

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,18 @@ const PHASE_ATTRIBUTES = _.keys(models.ProjectPhase.rawAttributes);
1515

1616
const permissions = tcMiddleware.permissions;
1717

18-
const populateMemberDetails = async (phases, logger, id) => {
19-
const userIds = _.reduce(phases, (acc, phase) => _.concat(acc, _.map(phase.members, 'userId')), []);
20-
if (userIds.length > 0) {
21-
const details = await util.getMemberDetailsByUserIds(userIds, logger, id);
22-
_.forEach(phases, (phase) => {
23-
_.forEach(phase.members, (member) => {
24-
_.assign(member, _.find(details, detail => detail.userId === member.userId));
25-
});
26-
});
18+
const populateMemberDetails = async (phases, req) => {
19+
let members = _.reduce(phases, (acc, phase) =>
20+
_.concat(acc, _.map(phase.members, member => _.pick(member, 'userId'))), []);
21+
members = _.uniqBy(members, 'userId');
22+
try {
23+
const detailedMembers = await util.getObjectsWithMemberDetails(members, ['userId', 'handle', 'photoURL'], req);
24+
return _.map(phases, phase =>
25+
_.assign(phase, { members: _.intersectionBy(detailedMembers, phase.members, 'userId') }));
26+
} catch (err) {
27+
return _.map(phases, phase =>
28+
_.assign(phase, { members: _.map(phase.members, member => _.pick(member, 'userId')) }));
2729
}
28-
return phases;
2930
};
3031
module.exports = [
3132
permissions('project.view'),
@@ -70,7 +71,7 @@ module.exports = [
7071
}
7172

7273
phases = _.map(phases, phase => _.pick(phase, fields));
73-
return populateMemberDetails(phases, req.log, req.id)
74+
return populateMemberDetails(phases, req)
7475
.then(result => res.json(result));
7576
})
7677
.catch((err) => {
@@ -121,7 +122,7 @@ module.exports = [
121122
}
122123
phases = _.map(phases, phase => _.pick(phase, fields));
123124
// Write to response
124-
return populateMemberDetails(phases, req.log, req.id)
125+
return populateMemberDetails(phases, req)
125126
.then(result => res.json(result));
126127
});
127128
}

0 commit comments

Comments
 (0)