Skip to content

Commit 729ffde

Browse files
authored
Merge pull request #12 from topcoder-platform/develop
Fix for Member Skills Aggregation
2 parents 7cbc7ee + 52dcd12 commit 729ffde

File tree

2 files changed

+41
-28
lines changed

2 files changed

+41
-28
lines changed

src/common/helper.js

+40-27
Original file line numberDiff line numberDiff line change
@@ -568,40 +568,52 @@ function mergeSkills (memberEnteredSkill, memberAggregatedSkill, allTags) {
568568
})
569569
// process skills in member aggregated skill
570570
if (memberAggregatedSkill.skills) {
571-
_.forIn(memberAggregatedSkill.skills, (value, key) => {
572-
if (!value.hidden) {
573-
var tag = this.findTagById(allTags, Number(key))
574-
if(tag) {
575-
if (value.hasOwnProperty("sources")) {
576-
if(value.sources.includes("CHALLENGE")) {
577-
if (tempSkill[key]) {
578-
value.tagName = tag.name
579-
if (!value.hasOwnProperty("score")) {
580-
value.score = tempSkill[key].score
581-
} else {
582-
if (value.score <= tempSkill[key].score) {
583-
value.score = tempSkill[key].score
584-
}
585-
}
586-
value.sources.push(tempSkill[key].sources[0])
587-
} else {
588-
value.tagName = tag.name
589-
if (!value.hasOwnProperty("score")) {
590-
value.score = 0
591-
}
571+
tempSkill = mergeAggregatedSkill(memberAggregatedSkill, allTags, tempSkill)
572+
}
573+
memberEnteredSkill.skills = tempSkill
574+
} else {
575+
// process skills in member aggregated skill
576+
if (memberAggregatedSkill.hasOwnProperty("skills")) {
577+
var tempSkill = {}
578+
memberEnteredSkill.skills = mergeAggregatedSkill(memberAggregatedSkill, allTags, tempSkill)
579+
} else {
580+
memberEnteredSkill.skills = {}
581+
}
582+
}
583+
return memberEnteredSkill
584+
}
585+
586+
function mergeAggregatedSkill (memberAggregatedSkill, allTags, tempSkill) {
587+
for (var key in memberAggregatedSkill.skills) {
588+
var value = memberAggregatedSkill.skills[key]
589+
if (!value.hidden) {
590+
var tag = findTagById(allTags, Number(key))
591+
if(tag) {
592+
if (value.hasOwnProperty("sources")) {
593+
if(value.sources.includes("CHALLENGE")) {
594+
if (tempSkill[key]) {
595+
value.tagName = tag.name
596+
if (!value.hasOwnProperty("score")) {
597+
value.score = tempSkill[key].score
598+
} else {
599+
if (value.score <= tempSkill[key].score) {
600+
value.score = tempSkill[key].score
592601
}
593-
tempSkill[key] = value
602+
}
603+
value.sources.push(tempSkill[key].sources[0])
604+
} else {
605+
value.tagName = tag.name
606+
if (!value.hasOwnProperty("score")) {
607+
value.score = 0
594608
}
595609
}
610+
tempSkill[key] = value
596611
}
597612
}
598-
})
613+
}
599614
}
600-
memberEnteredSkill.skills = tempSkill
601-
} else {
602-
memberEnteredSkill.skills = {}
603615
}
604-
return memberEnteredSkill
616+
return tempSkill
605617
}
606618

607619
async function getAllTags(url) {
@@ -650,6 +662,7 @@ module.exports = {
650662
convertToObjectSkills,
651663
cleanupSkills,
652664
mergeSkills,
665+
mergeAggregatedSkill,
653666
getAllTags,
654667
findTagById,
655668
getRatingColor

src/services/StatisticsService.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ async function getMemberSkills (currentUser, handle, query, throwError) {
252252
this.allTags = await helper.getAllTags(config.TAGS.TAGS_BASE_URL + config.TAGS.TAGS_API_VERSION + config.TAGS.TAGS_FILTER)
253253
}
254254
// get member entered skill by member user id
255-
let memberEnteredSkill = await helper.getEntityByHashKey(handle, 'MemberEnteredSkills', 'userId', member.userId, throwError)
255+
let memberEnteredSkill = await helper.getEntityByHashKey(handle, 'MemberEnteredSkills', 'userId', member.userId, false)
256256
// get member aggregated skill by member user id
257257
let memberAggregatedSkill = await helper.getEntityByHashKey(handle, 'MemberAggregatedSkills', 'userId', member.userId, false)
258258
// cleanup - convert string to object

0 commit comments

Comments
 (0)