|
1 | 1 |
|
| 2 | +const _ = require('lodash') |
2 | 3 | const fs = require('fs').promises
|
3 | 4 | const config = require('config')
|
4 | 5 | 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 }) |
5 | 10 |
|
6 | 11 | const url = `https://${config.DOMAIN}/v5/skills`
|
7 | 12 | const skillProviderId = config.SKILLPROVIDERID
|
8 | 13 |
|
| 14 | +async function getUbahnM2Mtoken() { |
| 15 | + return ubahnM2M.getMachineToken(config.AUTH0_CLIENT_ID, config.AUTH0_CLIENT_SECRET) |
| 16 | +} |
| 17 | + |
9 | 18 | async function sleep(ms) {
|
10 | 19 | return new Promise(resolve => setTimeout(resolve, ms));
|
11 | 20 | }
|
12 | 21 |
|
13 | 22 | async function createSkill() {
|
14 | 23 | try {
|
| 24 | + const fails = new Array() |
15 | 25 | const skillsFile = await fs.readFile(config.FILE_SKILLS)
|
16 | 26 | const skills = skillsFile.toString().split('\n')
|
17 | 27 | console.log(`loading ${skills.length} skills to ${skillProviderId}`)
|
| 28 | + const token = await getUbahnM2Mtoken() |
18 | 29 |
|
19 | 30 | for (let i = 0; i < skills.length; i++) {
|
20 | 31 | const name = skills[i]
|
21 | 32 | console.log(`${i}: ${name}`)
|
22 | 33 |
|
23 | 34 | try {
|
| 35 | + |
24 | 36 | await axios.post(url, {
|
25 | 37 | skillProviderId,
|
26 | 38 | name
|
27 | 39 | }, {
|
28 | 40 | headers: {
|
29 |
| - Authorization: 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik1rWTNNamsxTWpNeU5Ua3dRalkzTmtKR00wRkZPRVl3TmtJd1FqRXlNVUk0TUVFNE9UQkZOZyJ9.eyJodHRwczovL3RvcGNvZGVyLmNvbS9jbGFpbXMvdXNlcklkIjoiMjMxMjQzMjkiLCJodHRwczovL3RvcGNvZGVyLmNvbS9jbGFpbXMvZW1haWwiOiJjYWxsbWVrYXRvb3RpZUBvdXRsb29rLmNvbSIsImh0dHBzOi8vdG9wY29kZXIuY29tL2NsYWltcy9oYW5kbGUiOiJjYWxsbWVrYXRvb3RpZSIsImh0dHBzOi8vdG9wY29kZXIuY29tL2NsYWltcy9yb2xlcyI6WyJjb3BpbG90IiwiVG9wY29kZXIgVXNlciIsIkNvbm5lY3QgQ29waWxvdCIsInUtYmFobiJdLCJodHRwczovL3RvcGNvZGVyLmNvbS9jbGFpbXMvbmlja25hbWUiOiJjYWxsbWVrYXRvb3RpZSIsImlzcyI6Imh0dHBzOi8vdG9wY29kZXIuYXV0aDAuY29tLyIsInN1YiI6ImF1dGgwfDIzMTI0MzI5IiwiYXVkIjpbImh0dHBzOi8vdS1iYWhuLnRvcGNvZGVyLmNvbSIsImh0dHBzOi8vdG9wY29kZXIuYXV0aDAuY29tL3VzZXJpbmZvIl0sImlhdCI6MTU5ODk2NzU2OCwiZXhwIjoxNTk5MDUzOTY4LCJhenAiOiJOa1NTMU5LYzVoZldpMEU1OFZqUU1GNzAwZ1ZBRmlJQyIsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZW1haWwifQ.ioXTj6ictza6iAHlhtYEJGjDlaqttEx65RmM28O5sxoPzAyaHcPxX8rYlBMFhIfBuHFcGi3SI8kQUbnxikGkEeAio9UmejKyNogrwPBWmePTeP9J6NwF-a1f_Pnib-Jr2-Qox9QmGSZL9Ilkxls5Kh5RHtmOmFoKvD6uQOD5ov9IaEJEXvKw4lhy1-FAQKr_-1GT1rhjEEd7LxNsEtSur_wyTWE1tsLMjkBm9R9ZY_yzLN9NZYLP6j6-jOG4OQSoF1dmrCbRQPV9ZOtfEyUDBV3VvXqe-00K1txNOyV9IQgQ1FMIDf9g1bd2s9oC6lBKghScobml7RpSDPESOddZqg' |
| 41 | + Authorization: `Bearer ${token}` |
30 | 42 | }
|
31 | 43 | })
|
32 | 44 | } 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} |
35 | 48 | }
|
36 | 49 | await sleep(3000)
|
37 | 50 | }
|
|
0 commit comments