Skip to content

Commit 938fa83

Browse files
committed
Merge branch 'develop'
2 parents e1b681a + 6c73a50 commit 938fa83

File tree

5 files changed

+40
-7
lines changed

5 files changed

+40
-7
lines changed

app-constants.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
const UserRoles = {
66
Admin: 'administrator',
77
Copilot: 'copilot',
8+
Manager: 'Connect Manager',
89
User: 'Topcoder User'
910
}
1011

package-lock.json

Lines changed: 21 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
"tc-bus-api-wrapper": "topcoder-platform/tc-bus-api-wrapper.git",
4949
"tc-core-library-js": "appirio-tech/tc-core-library-js.git#v2.6.4",
5050
"uuid": "^3.3.2",
51+
"uuidv4": "^6.2.3",
5152
"winston": "^3.2.1",
5253
"xss": "^1.0.7",
5354
"yamljs": "^0.3.0"

src/routes.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,21 @@ module.exports = {
1212
method: 'getResources',
1313
allowAnonymous: true,
1414
auth: 'jwt',
15-
access: [constants.UserRoles.Admin, constants.UserRoles.Copilot, constants.UserRoles.User],
15+
access: [constants.UserRoles.Admin, constants.UserRoles.Copilot, constants.UserRoles.Manager, constants.UserRoles.User],
1616
scopes: [READ, ALL]
1717
},
1818
post: {
1919
controller: 'ResourceController',
2020
method: 'createResource',
2121
auth: 'jwt',
22-
access: [constants.UserRoles.Admin, constants.UserRoles.Copilot, constants.UserRoles.User],
22+
access: [constants.UserRoles.Admin, constants.UserRoles.Copilot, constants.UserRoles.Manager, constants.UserRoles.User],
2323
scopes: [CREATE, ALL]
2424
},
2525
delete: {
2626
controller: 'ResourceController',
2727
method: 'deleteResource',
2828
auth: 'jwt',
29-
access: [constants.UserRoles.Admin, constants.UserRoles.Copilot, constants.UserRoles.User],
29+
access: [constants.UserRoles.Admin, constants.UserRoles.Copilot, constants.UserRoles.Manager, constants.UserRoles.User],
3030
scopes: [DELETE, ALL]
3131
}
3232
},
@@ -41,7 +41,7 @@ module.exports = {
4141
controller: 'ResourceController',
4242
method: 'listChallengesByMember',
4343
auth: 'jwt',
44-
access: [constants.UserRoles.Admin, constants.UserRoles.Copilot, constants.UserRoles.User],
44+
access: [constants.UserRoles.Admin, constants.UserRoles.Copilot, constants.UserRoles.Manager, constants.UserRoles.User],
4545
scopes: [READ, ALL]
4646
}
4747
},
@@ -50,7 +50,7 @@ module.exports = {
5050
controller: 'ResourceRoleController',
5151
method: 'getResourceRoles',
5252
auth: 'jwt',
53-
access: [constants.UserRoles.Admin, constants.UserRoles.Copilot, constants.UserRoles.User],
53+
access: [constants.UserRoles.Admin, constants.UserRoles.Copilot, constants.UserRoles.Manager, constants.UserRoles.User],
5454
scopes: [READ, ALL]
5555
},
5656
post: {

src/services/ResourceService.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ const _ = require('lodash')
66
const config = require('config')
77
const Joi = require('joi')
88
const uuid = require('uuid/v4')
9+
const uuidV4 = require('uuidv4')
910
const moment = require('moment')
1011
const helper = require('../common/helper')
1112
const logger = require('../common/logger')
@@ -44,8 +45,15 @@ async function checkAccess (currentUser, resources) {
4445
* @returns {Array} the search result
4546
*/
4647
async function getResources (currentUser, challengeId, roleId, page, perPage) {
47-
// Verify that the challenge exists
48-
await helper.getRequest(`${config.CHALLENGE_API_URL}/${challengeId}`)
48+
if (!uuidV4.isUuid(challengeId)) {
49+
throw new errors.BadRequestError(`Challenge ID ${challengeId} must be a valid v5 Challenge Id (UUID)`)
50+
}
51+
try {
52+
// Verify that the challenge exists
53+
await helper.getRequest(`${config.CHALLENGE_API_URL}/${challengeId}`)
54+
} catch (e) {
55+
throw new errors.NotFoundError(`Challenge ID ${challengeId} not found`)
56+
}
4957

5058
const boolQuery = []
5159
const mustQuery = []
@@ -320,6 +328,7 @@ async function createResource (currentUser, resource) {
320328

321329
return ret
322330
} catch (err) {
331+
logger.error(`Create Resource Error ${JSON.stringify(err)}`)
323332
if (!helper.isCustomError(err)) {
324333
await helper.postEvent(config.KAFKA_ERROR_TOPIC, { error: _.pick(err, 'name', 'message', 'stack') })
325334
}
@@ -370,6 +379,7 @@ async function deleteResource (currentUser, resource) {
370379
await helper.postEvent(config.RESOURCE_DELETE_TOPIC, _.pick(ret, payloadFields))
371380
return ret
372381
} catch (err) {
382+
logger.error(`Delete Resource Error ${JSON.stringify(err)}`)
373383
if (!helper.isCustomError(err)) {
374384
await helper.postEvent(config.KAFKA_ERROR_TOPIC, { error: _.pick(err, 'name', 'message', 'stack') })
375385
}

0 commit comments

Comments
 (0)