Skip to content
This repository was archived by the owner on Jan 23, 2025. It is now read-only.

Commit a73b32c

Browse files
committed
Fixing Task Association and Tag Lookup
1 parent 6ec2bfc commit a73b32c

File tree

3 files changed

+52
-10
lines changed

3 files changed

+52
-10
lines changed

src/services/challengeService.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ const { Challenge, ChallengeType, ChallengeTimelineTemplate } = require('../mode
1212
const { getESClient, getV4ESClient, getM2MToken } = require('../util/helper')
1313
const challengeInformixService = require('./challengeInformixService')
1414
const resourceService = require('./resourceService')
15+
const resourceInformixService = require('./resourceInformixService')
1516
const translationService = require('./translationService')
1617

1718
let allV5Terms
@@ -549,6 +550,18 @@ async function buildV5Challenge (legacyId, challengeListing, challengeDetails) {
549550
challengeListing.subTrack,
550551
challengeListing.isTask || false)
551552

553+
let taskIsAssigned = false
554+
let taskMemberId = null
555+
if (challengeListing.isTask &&
556+
challengeDetails.registrants &&
557+
challengeDetails.registrants.length >= 1) {
558+
taskIsAssigned = true
559+
const memberObject = challengeDetails.registrants.pop()
560+
if (memberObject && memberObject.handle) {
561+
taskMemberId = await resourceInformixService.getMemberIdByHandleFromIfx(memberObject.handle)
562+
}
563+
}
564+
552565
const newChallenge = {
553566
id: null, // this is removed from here and created in the save function
554567
legacyId,
@@ -568,8 +581,8 @@ async function buildV5Challenge (legacyId, challengeListing, challengeDetails) {
568581
},
569582
task: {
570583
isTask: challengeListing.isTask || false,
571-
isAssigned: (challengeListing.isTask && challengeListing.submitterIds && challengeListing.submitterIds.length >= 1) || false,
572-
memberId: (challengeListing.isTask && challengeListing.submitterIds && challengeListing.submitterIds.length === 1) ? _.toString(challengeListing.submitterIds[0]) : ''
584+
isAssigned: taskIsAssigned,
585+
memberId: taskMemberId
573586
},
574587
name: challengeListing.challengeTitle,
575588
description: detailRequirement || '',

src/services/resourceInformixService.js

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,26 @@ WHERE r.project_id = ${legacyChallengeId}`
2727
return execQuery(sql)
2828
}
2929

30+
/**
31+
* Get MemberId from Handle from informix
32+
*
33+
* @param {Number} legacyChallengeId
34+
*/
35+
async function getMemberIdByHandleFromIfx (handle) {
36+
const sql = `
37+
SELECT limit 1 u.user_id as member_id, u.handle as member_handle
38+
FROM user u
39+
WHERE u.handle = "${handle}"`
40+
logger.info(`getMemberIdByHandleFromIfx: ${sql}`)
41+
const memberArray = await execQuery(sql)
42+
const memberObj = memberArray[0]
43+
if (memberObj) {
44+
logger.info(`getMemberIdByHandleFromIfx: ${JSON.stringify(memberObj)}`)
45+
return memberObj.member_id
46+
}
47+
return null
48+
}
49+
3050
/**
3151
* Get challenge resource from informix
3252
*
@@ -81,5 +101,6 @@ async function execQuery (sql) {
81101
module.exports = {
82102
getResourcesForChallengeFromIfx,
83103
getResourceRolesFromIfx,
84-
getChallengeResourcesFromIfx
104+
getChallengeResourcesFromIfx,
105+
getMemberIdByHandleFromIfx
85106
}

src/util/conversionMappings.js

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,14 @@ const V4_SUBTRACKS = {
8686

8787
const MARATHON_MATCH_TAG = 'Marathon Match'
8888

89+
const FE_DESIGN_TAG = 'Front-End Design'
90+
const IDEATION_TAG = 'Ideation'
91+
const WIREFRAME_TAG = 'Wireframe'
92+
const BUG_HUNT_TAG = 'Bug Hunt'
93+
const TEST_SUITES_TAG = 'Test Suites'
94+
const TEST_SCENARIOS_TAG = 'Test Scenarios'
95+
const TESTING_COMPETITION_TAG = 'Testing Competition'
96+
8997
// Helper methodS to simply avoid writing too much
9098
const buildV4Data = (track, subTrack, isTask) => ({ track, subTrack, isTask })
9199
const buildV5Data = (trackId, typeId, tags = []) => ({
@@ -131,11 +139,11 @@ module.exports = {
131139
},
132140
[V4_TRACKS.DESIGN]: {
133141
[V4_SUBTRACKS.DESIGN_FIRST_2_FINISH]: (isTask) => buildV5Data(V5_TRACK_IDS.DESIGN, isTask ? V5_TYPE_IDS.TASK : V5_TYPE_IDS.FIRST_2_FINISH),
134-
[V4_SUBTRACKS.APPLICATION_FRONT_END_DESIGN]: () => buildV5Data(V5_TRACK_IDS.DESIGN, V5_TYPE_IDS.CHALLENGE),
142+
[V4_SUBTRACKS.APPLICATION_FRONT_END_DESIGN]: () => buildV5Data(V5_TRACK_IDS.DESIGN, V5_TYPE_IDS.CHALLENGE, [FE_DESIGN_TAG]),
135143
[V4_SUBTRACKS.WEB_DESIGNS]: () => buildV5Data(V5_TRACK_IDS.DESIGN, V5_TYPE_IDS.CHALLENGE),
136-
[V4_SUBTRACKS.IDEA_GENERATION]: () => buildV5Data(V5_TRACK_IDS.DESIGN, V5_TYPE_IDS.CHALLENGE),
144+
[V4_SUBTRACKS.IDEA_GENERATION]: () => buildV5Data(V5_TRACK_IDS.DESIGN, V5_TYPE_IDS.CHALLENGE, [IDEATION_TAG]),
137145
[V4_SUBTRACKS.WIDGET_OR_MOBILE_SCREEN_DESIGN]: () => buildV5Data(V5_TRACK_IDS.DESIGN, V5_TYPE_IDS.CHALLENGE),
138-
[V4_SUBTRACKS.WIREFRAMES]: () => buildV5Data(V5_TRACK_IDS.DESIGN, V5_TYPE_IDS.CHALLENGE),
146+
[V4_SUBTRACKS.WIREFRAMES]: () => buildV5Data(V5_TRACK_IDS.DESIGN, V5_TYPE_IDS.CHALLENGE, [WIREFRAME_TAG]),
139147
[V4_SUBTRACKS.PRINT_OR_PRESENTATION]: () => buildV5Data(V5_TRACK_IDS.DESIGN, V5_TYPE_IDS.CHALLENGE),
140148
[V4_SUBTRACKS.STUDIO_OTHER]: () => buildV5Data(V5_TRACK_IDS.DESIGN, V5_TYPE_IDS.CHALLENGE),
141149
[V4_SUBTRACKS.BANNERS_OR_ICONS]: () => buildV5Data(V5_TRACK_IDS.DESIGN, V5_TYPE_IDS.CHALLENGE),
@@ -147,14 +155,14 @@ module.exports = {
147155
[V4_SUBTRACKS.FIRST_2_FINISH]: (isTask) => buildV5Data(V5_TRACK_IDS.DEVELOPMENT, isTask ? V5_TYPE_IDS.TASK : V5_TYPE_IDS.FIRST_2_FINISH),
148156
[V4_SUBTRACKS.CODE]: () => buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE),
149157
[V4_SUBTRACKS.COPILOT_POSTING]: () => buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE),
150-
[V4_SUBTRACKS.BUG_HUNT]: () => buildV5Data(V5_TRACK_IDS.QA, V5_TYPE_IDS.CHALLENGE),
158+
[V4_SUBTRACKS.BUG_HUNT]: () => buildV5Data(V5_TRACK_IDS.QA, V5_TYPE_IDS.CHALLENGE, [BUG_HUNT_TAG]),
151159
[V4_SUBTRACKS.DEVELOP_MARATHON_MATCH]: () => buildV5Data(V5_TRACK_IDS.DATA_SCIENCE, V5_TYPE_IDS.CHALLENGE, [MARATHON_MATCH_TAG]),
152-
[V4_SUBTRACKS.TEST_SUITES]: () => buildV5Data(V5_TRACK_IDS.QA, V5_TYPE_IDS.CHALLENGE),
160+
[V4_SUBTRACKS.TEST_SUITES]: () => buildV5Data(V5_TRACK_IDS.QA, V5_TYPE_IDS.CHALLENGE, [TEST_SUITES_TAG]),
153161
[V4_SUBTRACKS.UI_PROTOTYPE_COMPETITION]: () => buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE),
154162
[V4_SUBTRACKS.ARCHITECTURE]: () => buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE),
155163
[V4_SUBTRACKS.ASSEMBLY_COMPETITION]: () => buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE),
156164
[V4_SUBTRACKS.SPECIFICATION]: () => buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE),
157-
[V4_SUBTRACKS.TEST_SCENARIOS]: () => buildV5Data(V5_TRACK_IDS.QA, V5_TYPE_IDS.CHALLENGE),
165+
[V4_SUBTRACKS.TEST_SCENARIOS]: () => buildV5Data(V5_TRACK_IDS.QA, V5_TYPE_IDS.CHALLENGE, [TEST_SCENARIOS_TAG]),
158166
[V4_SUBTRACKS.CONCEPTUALIZATION]: () => buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE),
159167
[V4_SUBTRACKS.CONTENT_CREATION]: () => buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE),
160168
[V4_SUBTRACKS.DESIGN]: () => buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE),
@@ -163,7 +171,7 @@ module.exports = {
163171
[V4_SUBTRACKS.REPORTING]: () => buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE),
164172
[V4_SUBTRACKS.PROCESS]: () => buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE),
165173
[V4_SUBTRACKS.LEGACY]: () => buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE),
166-
[V4_SUBTRACKS.TESTING_COMPETITION]: () => buildV5Data(V5_TRACK_IDS.QA, V5_TYPE_IDS.CHALLENGE),
174+
[V4_SUBTRACKS.TESTING_COMPETITION]: () => buildV5Data(V5_TRACK_IDS.QA, V5_TYPE_IDS.CHALLENGE, [TESTING_COMPETITION_TAG]),
167175
[V4_SUBTRACKS.DEPLOYMENT]: () => buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE),
168176
[V4_SUBTRACKS.COMPONENT_PRODUCTION]: () => buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE),
169177
[V4_SUBTRACKS.SECURITY]: () => buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE)

0 commit comments

Comments
 (0)