Skip to content

Commit 7056257

Browse files
authored
Merge pull request #55 from topcoder-platform/issues-474
Issues-474: implemented archive flow
2 parents 0168c3d + c312e40 commit 7056257

File tree

3 files changed

+47
-4
lines changed

3 files changed

+47
-4
lines changed

src/constants.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,21 @@ module.exports = {
4242
COPILOT: 'Copilot',
4343
MANAGER: 'Manager',
4444
SUBMITTER: 'Submitter'
45+
},
46+
CHALLENGE_STATUSES: {
47+
NEW: 'New',
48+
DRAFT: 'Draft',
49+
CANCELLED: 'Cancelled',
50+
ACTIVE: 'Active',
51+
COMPLETED: 'Completed',
52+
DELETED: 'Deleted',
53+
CANCELLED_FAILED_REVIEW: 'Cancelled - Failed Review',
54+
CANCELLED_FAILED_SCREENING: 'Cancelled - Failed Screening',
55+
CANCELLED_ZERO_SUBMISSIONS: 'Cancelled - Zero Submissions',
56+
CANCELLED_WINNER_UNRESPONSIVE: 'Cancelled - Winner Unresponsive',
57+
CANCELLED_CLIENT_REQUEST: 'Cancelled - Client Request',
58+
CANCELLED_REQUIREMENTS_INFEASIBLE: 'Cancelled - Requirements Infeasible',
59+
CANCELLED_ZERO_REGISTRATIONS: 'Cancelled - Zero Registrations'
4560
}
4661
},
4762
VANILLA: {

src/services/vanilla.js

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,8 @@ async function createVanillaGroup (challenge) {
204204
type: groupTemplate.group.type,
205205
description: groupDescriptionTemplate({ challenge }),
206206
challengeID: `${challenge.id}`,
207-
challengeUrl: `${challenge.url}`
207+
challengeUrl: `${challenge.url}`,
208+
archived: true
208209
})
209210

210211
if (!group.groupID) {
@@ -229,7 +230,8 @@ async function createVanillaGroup (challenge) {
229230
urlcode: `${challenge.id}`,
230231
parentCategoryID: parentCategory[0].categoryID,
231232
displayAs: groupTemplate.categories ? constants.VANILLA.CATEGORY_DISPLAY_STYLE.CATEGORIES : constants.VANILLA.CATEGORY_DISPLAY_STYLE.DISCUSSIONS,
232-
groupID: group.groupID
233+
groupID: group.groupID,
234+
archived: true
233235
})
234236

235237
logger.info(`The '${challengeCategory.name}' category was created`)
@@ -241,7 +243,8 @@ async function createVanillaGroup (challenge) {
241243
name: item.name,
242244
urlcode: `${urlCodeTemplate({ challenge })}`,
243245
parentCategoryID: challengeCategory.categoryID,
244-
groupID: group.groupID
246+
groupID: group.groupID,
247+
archived: true
245248
})
246249
logger.info(`The '${item.name}' category was created`)
247250
await createDiscussions(group, challenge, item.discussions, childCategory)
@@ -286,8 +289,25 @@ async function updateVanillaGroup (challenge) {
286289
throw new Error('Multiple groups were found for this challenge')
287290
}
288291

292+
if (challenge.status === constants.TOPCODER.CHALLENGE_STATUSES.ACTIVE) {
293+
await vanillaClient.unarchiveGroup(groups[0].groupID)
294+
logger.info(`The group with groupID=${groups[0].groupID} was unarchived.`)
295+
} else if (_.includes([constants.TOPCODER.CHALLENGE_STATUSES.COMPLETED,
296+
constants.TOPCODER.CHALLENGE_STATUSES.CANCELLED,
297+
constants.TOPCODER.CHALLENGE_STATUSES.CANCELLED_FAILED_REVIEW,
298+
constants.TOPCODER.CHALLENGE_STATUSES.CANCELLED_FAILED_SCREENING,
299+
constants.TOPCODER.CHALLENGE_STATUSES.CANCELLED_ZERO_SUBMISSIONS,
300+
constants.TOPCODER.CHALLENGE_STATUSES.CANCELLED_WINNER_UNRESPONSIVE,
301+
constants.TOPCODER.CHALLENGE_STATUSES.CANCELLED_CLIENT_REQUEST,
302+
constants.TOPCODER.CHALLENGE_STATUSES.CANCELLED_REQUIREMENTS_INFEASIBLE,
303+
constants.TOPCODER.CHALLENGE_STATUSES.CANCELLED_ZERO_REGISTRATIONS,
304+
constants.TOPCODER.CHALLENGE_STATUSES.DELETED], challenge.status)) {
305+
await vanillaClient.archiveGroup(groups[0].groupID)
306+
logger.info(`The group with groupID=${groups[0].groupID} was archived.`)
307+
}
308+
289309
const { body: updatedGroup } = await vanillaClient.updateGroup(groups[0].groupID, { name: challenge.name })
290-
logger.info(`The group was updated: ${JSON.stringify(updatedGroup)}`)
310+
logger.info(`The group with groupID=${groups[0].groupID} was updated: ${JSON.stringify(updatedGroup)}`)
291311

292312
const { body: groupCategory } = await vanillaClient.getCategoryByUrlcode(`${challenge.id}`)
293313
if (!groupCategory) {

src/utils/vanilla-client.util.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,14 @@ function getVanillaClient () {
122122
.query({ access_token: config.VANILLA.ADMIN_ACCESS_TOKEN })
123123
.send(data)
124124
},
125+
archiveGroup: (groupId) => {
126+
return request.put(`${config.VANILLA.API_URL}/groups/${groupId}/archive`)
127+
.query({ access_token: config.VANILLA.ADMIN_ACCESS_TOKEN })
128+
},
129+
unarchiveGroup: (groupId) => {
130+
return request.put(`${config.VANILLA.API_URL}/groups/${groupId}/unarchive`)
131+
.query({ access_token: config.VANILLA.ADMIN_ACCESS_TOKEN })
132+
},
125133
searchGroups: (query) => {
126134
const queryParams = { access_token: config.VANILLA.ADMIN_ACCESS_TOKEN }
127135
queryParams.challengeID = query

0 commit comments

Comments
 (0)