Skip to content

Commit f367adf

Browse files
committed
Fix issue 3723
1 parent 8f29834 commit f367adf

File tree

3 files changed

+29
-18
lines changed

3 files changed

+29
-18
lines changed

src/common/helper.js

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,10 +165,34 @@ async function getMemberDetailsByUserIds (userIds) {
165165
}
166166
}
167167

168+
/**
169+
* Populate member with user details
170+
*
171+
* @param {Object} member the member object
172+
* @returns {Object} the member object with details
173+
*/
174+
async function populateMemberWithUserDetails (member) {
175+
try {
176+
const membersDetails = await getMemberDetailsByUserIds([member.userId])
177+
const memberDetails = membersDetails[0]
178+
if (memberDetails) {
179+
logger.debug(`Successfully got user details for member (userId:${member.userId})`)
180+
return _.merge(member, _.pick(memberDetails, 'handle', 'firstName', 'lastName', 'email'))
181+
} else {
182+
throw new Error(`Didn't fine user details for member (userId:${member.userId})`)
183+
}
184+
} catch (err) {
185+
logger.error(`Cannot populate member (userId:${member.userId}) with user details.`)
186+
logger.debug(`Error during populating member (userId:${member.userId}) with user details`, err)
187+
return member
188+
}
189+
}
190+
168191
module.exports = {
169192
getESClient,
170193
updateProjectESPromise,
171194
updateTimelineESPromise,
172195
updateMetadadaESPromise,
173-
getMemberDetailsByUserIds
196+
getMemberDetailsByUserIds,
197+
populateMemberWithUserDetails
174198
}

src/services/ProcessorServiceProject.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,9 @@ function createSchema () {
9393
* @return {Promise} promise result
9494
*/
9595
async function create (message) {
96+
const member = await helper.populateMemberWithUserDetails(message.members[0])
97+
message.members = [member]
98+
9699
await client.create({
97100
index: config.get('esConfig.ES_PROJECT_INDEX'),
98101
type: config.get('esConfig.ES_TYPE'),

src/services/ProcessorServiceProjectMember.js

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -53,23 +53,7 @@ async function create (message) {
5353
async function updateDocPromise (doc) {
5454
const members = _.isArray(doc._source.members) ? doc._source.members : []
5555
const existingMemberIndex = _.findIndex(members, p => p.id === message.id)// if member does not exists already
56-
let member = message
57-
58-
// try to populate member with user details
59-
// the code should move on, as it's not critical and is only used for searching at the moment
60-
try {
61-
const membersDetails = await helper.getMemberDetailsByUserIds([message.userId])
62-
const memberDetails = membersDetails[0]
63-
if (memberDetails) {
64-
member = _.merge(message, _.pick(memberDetails, 'handle', 'firstName', 'lastName', 'email'))
65-
logger.debug(`Successfully got user details for member (userId:${message.userId})`)
66-
} else {
67-
throw new Error(`Didn't fine user details for member (userId:${message.userId})`)
68-
}
69-
} catch (err) {
70-
logger.error(`Cannot populate member (userId:${message.userId}) with user details.`)
71-
logger.debug(`Error during populating member (userId:${message.userId}) with user details`, err)
72-
}
56+
const member = await helper.populateMemberWithUserDetails(message)
7357

7458
if (existingMemberIndex === -1) {
7559
members.push(member)

0 commit comments

Comments
 (0)