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

Commit 72faf80

Browse files
committed
adding in M2M token generation
1 parent e22f3fe commit 72faf80

File tree

5 files changed

+925
-6
lines changed

5 files changed

+925
-6
lines changed
Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
{
22
"DOMAIN": "DOMAIN",
33
"FILE_SKILLS": "FILE_SKILLS",
4-
"SKILLPROVIDERID": ""
4+
"SKILLPROVIDERID": "SKILLPROVIDERID",
5+
"AUTH0_URL": "AUTH0_URL",
6+
"AUTH0_PROXY_SERVER_URL": "AUTH0_PROXY_SERVER_URL",
7+
"AUTH0_CLIENT_ID": "AUTH0_CLIENT_ID",
8+
"AUTH0_CLIENT_SECRET": "AUTH0_CLIENT_SECRET",
9+
"AUTH0_AUDIENCE": "AUTH0_AUDIENCE",
10+
"TOKEN_CACHE_TIME": "TOKEN_CACHE_TIME"
511
}

config/default.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
{
22
"DOMAIN": "api.topcoder-dev.com",
33
"FILE_SKILLS": "skills-list.txt",
4-
"SKILLPROVIDERID": ""
4+
"SKILLPROVIDERID": "",
5+
"AUTH0_URL": "https://topcoder-dev.auth0.com/oauth/token",
6+
"AUTH0_PROXY_SERVER_URL": "https://auth0proxy.topcoder-dev.com/token",
7+
"AUTH0_CLIENT_ID": "",
8+
"AUTH0_CLIENT_SECRET": "",
9+
"AUTH0_AUDIENCE": "https://u-bahn.topcoder.com",
10+
"TOKEN_CACHE_TIME": 86400000
511
}

create-skills.js

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,50 @@
11

2+
const _ = require('lodash')
23
const fs = require('fs').promises
34
const config = require('config')
45
const axios = require('axios')
6+
const m2mAuth = require('tc-core-library-js').auth.m2m
7+
8+
const ubahnM2MConfig = _.pick(config, ['AUTH0_URL', 'AUTH0_AUDIENCE', 'TOKEN_CACHE_TIME', 'AUTH0_PROXY_SERVER_URL'])
9+
const ubahnM2M = m2mAuth({ ...ubahnM2MConfig, AUTH0_AUDIENCE: ubahnM2MConfig.AUTH0_AUDIENCE })
510

611
const url = `https://${config.DOMAIN}/v5/skills`
712
const skillProviderId = config.SKILLPROVIDERID
813

14+
async function getUbahnM2Mtoken() {
15+
return ubahnM2M.getMachineToken(config.AUTH0_CLIENT_ID, config.AUTH0_CLIENT_SECRET)
16+
}
17+
918
async function sleep(ms) {
1019
return new Promise(resolve => setTimeout(resolve, ms));
1120
}
1221

1322
async function createSkill() {
1423
try {
24+
const fails = new Array()
1525
const skillsFile = await fs.readFile(config.FILE_SKILLS)
1626
const skills = skillsFile.toString().split('\n')
1727
console.log(`loading ${skills.length} skills to ${skillProviderId}`)
28+
const token = await getUbahnM2Mtoken()
1829

1930
for (let i = 0; i < skills.length; i++) {
2031
const name = skills[i]
2132
console.log(`${i}: ${name}`)
2233

2334
try {
35+
2436
await axios.post(url, {
2537
skillProviderId,
2638
name
2739
}, {
2840
headers: {
29-
Authorization: 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik1rWTNNamsxTWpNeU5Ua3dRalkzTmtKR00wRkZPRVl3TmtJd1FqRXlNVUk0TUVFNE9UQkZOZyJ9.eyJodHRwczovL3RvcGNvZGVyLmNvbS9jbGFpbXMvdXNlcklkIjoiMjMxMjQzMjkiLCJodHRwczovL3RvcGNvZGVyLmNvbS9jbGFpbXMvZW1haWwiOiJjYWxsbWVrYXRvb3RpZUBvdXRsb29rLmNvbSIsImh0dHBzOi8vdG9wY29kZXIuY29tL2NsYWltcy9oYW5kbGUiOiJjYWxsbWVrYXRvb3RpZSIsImh0dHBzOi8vdG9wY29kZXIuY29tL2NsYWltcy9yb2xlcyI6WyJjb3BpbG90IiwiVG9wY29kZXIgVXNlciIsIkNvbm5lY3QgQ29waWxvdCIsInUtYmFobiJdLCJodHRwczovL3RvcGNvZGVyLmNvbS9jbGFpbXMvbmlja25hbWUiOiJjYWxsbWVrYXRvb3RpZSIsImlzcyI6Imh0dHBzOi8vdG9wY29kZXIuYXV0aDAuY29tLyIsInN1YiI6ImF1dGgwfDIzMTI0MzI5IiwiYXVkIjpbImh0dHBzOi8vdS1iYWhuLnRvcGNvZGVyLmNvbSIsImh0dHBzOi8vdG9wY29kZXIuYXV0aDAuY29tL3VzZXJpbmZvIl0sImlhdCI6MTU5ODk2NzU2OCwiZXhwIjoxNTk5MDUzOTY4LCJhenAiOiJOa1NTMU5LYzVoZldpMEU1OFZqUU1GNzAwZ1ZBRmlJQyIsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZW1haWwifQ.ioXTj6ictza6iAHlhtYEJGjDlaqttEx65RmM28O5sxoPzAyaHcPxX8rYlBMFhIfBuHFcGi3SI8kQUbnxikGkEeAio9UmejKyNogrwPBWmePTeP9J6NwF-a1f_Pnib-Jr2-Qox9QmGSZL9Ilkxls5Kh5RHtmOmFoKvD6uQOD5ov9IaEJEXvKw4lhy1-FAQKr_-1GT1rhjEEd7LxNsEtSur_wyTWE1tsLMjkBm9R9ZY_yzLN9NZYLP6j6-jOG4OQSoF1dmrCbRQPV9ZOtfEyUDBV3VvXqe-00K1txNOyV9IQgQ1FMIDf9g1bd2s9oC6lBKghScobml7RpSDPESOddZqg'
41+
Authorization: `Bearer ${token}`
3042
}
3143
})
3244
} catch (error) {
33-
console.log('Error for ', name)
34-
console.log(error)
45+
console.log(`Error for skill: '${name}'`)
46+
// console.log(error)
47+
fails[fails.length] = { postion: i, name}
3548
}
3649
await sleep(3000)
3750
}

0 commit comments

Comments
 (0)