UNPKG

1.04 kBJavaScriptView Raw
1#!/usr/bin/env node
2
3// quickly generates bearer for a passed username
4/* eslint-disable no-console */
5
6const AMQPTransport = require('@microfleet/transport-amqp');
7const assert = require('assert');
8const conf = require('../lib/config');
9
10const config = conf.get('/', { env: process.env.NODE_ENV });
11const amqpConfig = config.amqp.transport;
12const { prefix } = config.router.routes;
13
14const username = process.argv[2];
15const name = process.argv[3];
16assert(username, 'must provide id as argv[2]');
17assert(name, 'must provide name of token as argv[3]');
18
19function approveSchool(amqp) {
20 const message = { username, name };
21 return amqp.publishAndWait(`${prefix}.token.create`, message, { timeout: 5000 });
22}
23
24// connection options
25AMQPTransport
26 .connect(amqpConfig)
27 .then((amqp) => approveSchool(amqp).tap(() => amqp.close()))
28 .then((token) => {
29 console.info('Created token for %s with name %s:\n\n%s\n\n', username, name, token);
30 return process.exit();
31 })
32 .catch((err) => {
33 setImmediate(() => { throw err; });
34 });