X-Git-Url: http://git.squeep.com/?p=squeep-indie-auther;a=blobdiff_plain;f=bin%2FresourceCreate.js;fp=bin%2FresourceCreate.js;h=ae7390a31f2a34bdcf81ede77fcffb6b1b113339;hp=0000000000000000000000000000000000000000;hb=b0103b0d496262c438b40bc20304081dbfe41e73;hpb=8ed81748bce7cea7904cac7225b20a60cafdfc16 diff --git a/bin/resourceCreate.js b/bin/resourceCreate.js new file mode 100644 index 0000000..ae7390a --- /dev/null +++ b/bin/resourceCreate.js @@ -0,0 +1,46 @@ +'use strict'; + +const cli = require('./cli-helper'); +const DB = require('../src/db'); +const Logger = require('../src/logger'); +const Config = require('../config'); +const { newSecret } = require('../src/common'); +const config = new Config(process.env.NODE_ENV, false); +const verbose = cli.getFlag('-v'); +if (!verbose) { + config.logger.ignoreBelowLevel = 'info'; +} +const logger = new Logger(config); +const db = new DB(logger, config); + + +const resourceId = cli.getOption('-i'); +let secret = cli.getOption('-s'); +const rest = process.argv.slice(2); +const description = rest.length ? rest.join(' ') : undefined; + +(async () => { + await db.initialize(); + try { + if (!resourceId) { + if (!description || !description.length) { + console.log('ERROR: description is required when creating a new resource.'); + throw new Error('Invalid parameters'); + } + if (!secret) { + secret = await newSecret(); + } + } + + await db.context(async (dbCtx) => { + const result = await db.resourceUpsert(dbCtx, resourceId, secret, description); + console.log(result); + }); + } catch (e) { + console.log(e); + } finally { + await db._closeConnection(); + } +})().then(() => { + console.log('done'); +});