Skip to content

Commit 1c0c3e5

Browse files
authored
Merge pull request #237 from narekcat/issue-236
fix: populate 'winners' array during payments
2 parents a4dabc4 + 9b73591 commit 1c0c3e5

File tree

2 files changed

+27
-3
lines changed

2 files changed

+27
-3
lines changed

src/common/helper.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1107,6 +1107,22 @@ async function getMemberDetailsByHandles (handles) {
11071107
return _.get(res.body, 'result.content')
11081108
}
11091109

1110+
/**
1111+
* Get topcoder member details by handle.
1112+
*
1113+
* @param {String} handle the user handle
1114+
* @returns {Object} the member details
1115+
*/
1116+
async function getV3MemberDetailsByHandle (handle) {
1117+
const token = await getM2MToken()
1118+
const res = await request
1119+
.get(`${config.TOPCODER_MEMBERS_API}/${handle}`)
1120+
.set('Authorization', `Bearer ${token}`)
1121+
.set('Accept', 'application/json')
1122+
localLogger.debug({ context: 'getV3MemberDetailsByHandle', message: `response body: ${JSON.stringify(res.body)}` })
1123+
return _.get(res.body, 'result.content')
1124+
}
1125+
11101126
/**
11111127
* Find topcoder members by email.
11121128
*
@@ -1433,6 +1449,7 @@ module.exports = {
14331449
getAuditM2Muser,
14341450
checkIsMemberOfProject,
14351451
getMemberDetailsByHandles,
1452+
getV3MemberDetailsByHandle,
14361453
getMemberDetailsByEmails,
14371454
createProjectMember,
14381455
listProjectMembers,

src/services/PaymentService.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ async function createPayment (options) {
3939
const challengeId = await createChallenge(options, token)
4040
await addResourceToChallenge(challengeId, options.userHandle, token)
4141
await activateChallenge(challengeId, token)
42-
const completedChallenge = await closeChallenge(challengeId, token)
42+
const completedChallenge = await closeChallenge(challengeId, options.userHandle, token)
4343
return completedChallenge
4444
}
4545

@@ -146,14 +146,21 @@ async function activateChallenge (id, token) {
146146
/**
147147
* closes the topcoder challenge
148148
* @param {String} id the challenge id
149+
* @param {String} userHandle the user handle
149150
* @param {String} token m2m token
150151
* @returns {Object} the closed challenge
151152
*/
152-
async function closeChallenge (id, token) {
153+
async function closeChallenge (id, userHandle, token) {
153154
localLogger.info({ context: 'closeChallenge', message: `Closing challenge ${id}` })
154155
try {
156+
const { userId } = await helper.getV3MemberDetailsByHandle(userHandle)
155157
const body = {
156-
status: constants.ChallengeStatus.COMPLETED
158+
status: constants.ChallengeStatus.COMPLETED,
159+
winners: [{
160+
userId,
161+
handle: userHandle,
162+
placement: 1
163+
}]
157164
}
158165
const response = await helper.updateChallenge(id, body, token)
159166
localLogger.info({ context: 'closeChallenge', message: `Challenge ${id} is closed successfully.` })

0 commit comments

Comments
 (0)