@@ -568,40 +568,52 @@ function mergeSkills (memberEnteredSkill, memberAggregatedSkill, allTags) {
568
568
} )
569
569
// process skills in member aggregated skill
570
570
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
592
601
}
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
594
608
}
595
609
}
610
+ tempSkill [ key ] = value
596
611
}
597
612
}
598
- } )
613
+ }
599
614
}
600
- memberEnteredSkill . skills = tempSkill
601
- } else {
602
- memberEnteredSkill . skills = { }
603
615
}
604
- return memberEnteredSkill
616
+ return tempSkill
605
617
}
606
618
607
619
async function getAllTags ( url ) {
@@ -650,6 +662,7 @@ module.exports = {
650
662
convertToObjectSkills,
651
663
cleanupSkills,
652
664
mergeSkills,
665
+ mergeAggregatedSkill,
653
666
getAllTags,
654
667
findTagById,
655
668
getRatingColor
0 commit comments