1 | #!/usr/bin/env node
|
2 |
|
3 |
|
4 |
|
5 |
|
6 | const AMQPTransport = require('@microfleet/transport-amqp');
|
7 | const assert = require('assert');
|
8 | const conf = require('../lib/config');
|
9 |
|
10 | const config = conf.get('/', { env: process.env.NODE_ENV });
|
11 | const amqpConfig = config.amqp.transport;
|
12 | const { prefix } = config.router.routes;
|
13 |
|
14 | const username = process.argv[2];
|
15 | const name = process.argv[3];
|
16 | assert(username, 'must provide id as argv[2]');
|
17 | assert(name, 'must provide name of token as argv[3]');
|
18 |
|
19 | function approveSchool(amqp) {
|
20 | const message = { username, name };
|
21 | return amqp.publishAndWait(`${prefix}.token.create`, message, { timeout: 5000 });
|
22 | }
|
23 |
|
24 |
|
25 | AMQPTransport
|
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 | });
|