diff --git a/app-constants.js b/app-constants.js index a2bb9ecf..a08a63e3 100644 --- a/app-constants.js +++ b/app-constants.js @@ -9,7 +9,8 @@ const UserRoles = { const prizeSetTypes = { ChallengePrizes: 'Challenge prizes', CopilotPayment: 'Copilot payment', - ReviewerPayment: 'Reviewer payment' + ReviewerPayment: 'Reviewer payment', + CheckpointPrizes: 'Checkpoint prizes' } const challengeStatuses = { diff --git a/package-lock.json b/package-lock.json index 753541e9..1351d98a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3152,7 +3152,8 @@ "requires": { "joi": "^13.4.0", "lodash": "^4.17.10", - "superagent": "^3.8.3" + "superagent": "^3.8.3", + "tc-core-library-js": "github:appirio-tech/tc-core-library-js#v2.6" }, "dependencies": { "axios": { @@ -3202,7 +3203,7 @@ }, "tc-core-library-js": { "version": "github:appirio-tech/tc-core-library-js#d16413db30b1eed21c0cf426e185bedb2329ddab", - "from": "github:appirio-tech/tc-core-library-js#d16413db30b1eed21c0cf426e185bedb2329ddab", + "from": "github:appirio-tech/tc-core-library-js#v2.6", "requires": { "auth0-js": "^9.4.2", "axios": "^0.12.0", diff --git a/src/models/Challenge.js b/src/models/Challenge.js index f66c28ba..8b7687a4 100644 --- a/src/models/Challenge.js +++ b/src/models/Challenge.js @@ -63,7 +63,7 @@ const schema = new Schema({ }, forumId: { type: Number, - required: true + required: false }, status: { type: String, diff --git a/src/routes.js b/src/routes.js index 078dda2a..50ed4283 100644 --- a/src/routes.js +++ b/src/routes.js @@ -127,8 +127,6 @@ module.exports = { get: { controller: 'ChallengePhaseController', method: 'searchPhases', - auth: 'jwt', - access: [constants.UserRoles.Admin, constants.UserRoles.Copilot], scopes: [CHALLENGE_PHASES.READ, CHALLENGE_PHASES.ALL] }, post: { @@ -173,8 +171,6 @@ module.exports = { get: { controller: 'TimelineTemplateController', method: 'searchTimelineTemplates', - auth: 'jwt', - access: [constants.UserRoles.Admin, constants.UserRoles.Copilot], scopes: [TIMELINE_TEMPLATES.READ, TIMELINE_TEMPLATES.ALL] }, post: { diff --git a/src/services/ChallengeService.js b/src/services/ChallengeService.js index b236512c..6ea74fb5 100644 --- a/src/services/ChallengeService.js +++ b/src/services/ChallengeService.js @@ -148,7 +148,7 @@ async function createChallenge (currentUser, challenge) { await ensureAccessibleByGroupsAccess(currentUser, challenge) const ret = await helper.create('Challenge', _.assign({ - id: uuid(), created: new Date(), createdBy: currentUser.handle }, challenge)) + id: uuid(), created: new Date(), createdBy: currentUser.handle || currentUser.sub }, challenge)) // post bus event await helper.postBusEvent(constants.Topics.ChallengeCreated, ret) @@ -187,7 +187,7 @@ createChallenge.schema = { reviewType: Joi.string().required(), tags: Joi.array().items(Joi.string().required()).min(1).required(), // tag names projectId: Joi.number().integer().positive().required(), - forumId: Joi.number().integer().positive().required(), + forumId: Joi.number().integer().positive(), status: Joi.string().valid(_.values(constants.challengeStatuses)).required(), groups: Joi.array().items(Joi.string()) // group names }).required() @@ -234,7 +234,7 @@ async function getChallenge (currentUser, id) { // populate type property based on the typeId const type = await helper.getById('ChallengeType', challenge.typeId) challenge.type = type.name - delete challenge.typeId + // delete challenge.typeId return populateSettings(challenge) } @@ -366,7 +366,7 @@ async function update (currentUser, challengeId, data, isFull) { } data.updated = new Date() - data.updatedBy = currentUser.handle + data.updatedBy = currentUser.handle || currentUser.sub const updateDetails = {} const auditLogs = [] _.each(data, (value, key) => { @@ -552,7 +552,7 @@ fullyUpdateChallenge.schema = { reviewType: Joi.string().required(), tags: Joi.array().items(Joi.string().required()).min(1).required(), // tag names projectId: Joi.number().integer().positive().required(), - forumId: Joi.number().integer().positive().required(), + forumId: Joi.number().integer().positive(), status: Joi.string().valid(_.values(constants.challengeStatuses)).required(), attachmentIds: Joi.array().items(Joi.optionalId()), groups: Joi.array().items(Joi.string()) // group names