initial commit
[squeep-indie-auther] / bin / resourceCreate.js
1 'use strict';
2
3 const cli = require('./cli-helper');
4 const DB = require('../src/db');
5 const Logger = require('../src/logger');
6 const Config = require('../config');
7 const { newSecret } = require('../src/common');
8 const config = new Config(process.env.NODE_ENV, false);
9 const verbose = cli.getFlag('-v');
10 if (!verbose) {
11 config.logger.ignoreBelowLevel = 'info';
12 }
13 const logger = new Logger(config);
14 const db = new DB(logger, config);
15
16
17 const resourceId = cli.getOption('-i');
18 let secret = cli.getOption('-s');
19 const rest = process.argv.slice(2);
20 const description = rest.length ? rest.join(' ') : undefined;
21
22 (async () => {
23 await db.initialize();
24 try {
25 if (!resourceId) {
26 if (!description || !description.length) {
27 console.log('ERROR: description is required when creating a new resource.');
28 throw new Error('Invalid parameters');
29 }
30 if (!secret) {
31 secret = await newSecret();
32 }
33 }
34
35 await db.context(async (dbCtx) => {
36 const result = await db.resourceUpsert(dbCtx, resourceId, secret, description);
37 console.log(result);
38 });
39 } catch (e) {
40 console.log(e);
41 } finally {
42 await db._closeConnection();
43 }
44 })().then(() => {
45 console.log('done');
46 });