|
1 | | -const helpers = require('../lib/helpers') |
2 | | -const Paystack = require('../lib/Paystack') |
3 | | -const init = function () { |
4 | | - vorpal.command('login', 'Sign in with your Paystack username and password').action(async function (args, callback) { |
5 | | - let token = '' |
6 | | - let expiry = parseInt(db.read('token_expiry')) * 1000; |
7 | | - let now = parseFloat(Date.now().toString()) |
8 | | - let user; |
9 | | - if (expiry > now) { |
10 | | - token = db.read('token'); |
11 | | - user = db.read('user'); |
12 | | - helpers.successLog("You're already logged in") |
13 | | - } |
14 | | - else { |
15 | | - var email = helpers.prompt('Email address\n') |
16 | | - let password = helpers.prompt('Password\n', true) |
17 | | - var [e, response] = await helpers.promiseWrapper(Paystack.signIn(email, password)) |
| 1 | +import * as helpers from '../lib/helpers.js'; |
| 2 | +import * as Paystack from '../lib/Paystack.js'; |
| 3 | + |
| 4 | +const init = () => { |
| 5 | + vorpal |
| 6 | + .command('login', 'Sign in with your Paystack username and password') |
| 7 | + .action(async (_args, _callback) => { |
| 8 | + let token, user; |
| 9 | + let expiry = parseInt(db.read('token_expiry')) * 1000; |
| 10 | + let now = parseFloat(Date.now().toString()); |
| 11 | + if (expiry > now) { |
| 12 | + token = db.read('token'); |
| 13 | + user = db.read('user'); |
| 14 | + helpers.successLog("You're already logged in"); |
| 15 | + return; |
| 16 | + } else { |
| 17 | + const email = helpers.prompt('Email address\n'); |
| 18 | + const password = helpers.prompt('Password\n', true); |
18 | 19 |
|
19 | | - if (response && !response.mfa_required) { |
20 | | - token = response.token; |
21 | | - user = response.user; |
22 | | - db.write('token', token) |
23 | | - db.write('user', user) |
24 | | - helpers.successLog('Login successful') |
25 | | - } else if (response && response.mfa_required) { |
26 | | - var totp = helpers.prompt('*MFA required* Enter 6-digit verification code\n') |
27 | | - var [e, response] = await helpers.promiseWrapper(Paystack.verifyMfa(totp, response.token)) |
28 | | - if (response) { |
29 | | - token = response.token |
30 | | - user = response.user |
31 | | - db.write('token', token) |
32 | | - db.write('user', user) |
33 | | - helpers.successLog('Login successful') |
34 | | - } |
35 | | - } else{ |
36 | | - helpers.errorLog('Login failed') |
37 | | - return; |
38 | | - } |
| 20 | + const [e, response] = await helpers.promiseWrapper( |
| 21 | + Paystack.signIn(email, password), |
| 22 | + ); |
| 23 | + |
| 24 | + if (response && response.data) { |
| 25 | + Paystack.storeLoginDetails(response); |
| 26 | + token = response.data.token; |
| 27 | + user = response.data.user; |
39 | 28 | } |
40 | | - if (response || (token && user)) { |
41 | | - var [err, integration] = await helpers.promiseWrapper(Paystack.selectIntegration(user.integrations, token)) |
42 | | - if (err) { |
43 | | - helpers.errorLog(err); |
44 | | - } |
45 | | - db.write('selected_integration', integration); |
46 | | - let user_role = db.read('selected_integration.logged_in_user_role'); |
47 | | - var [err, integrationData] = await helpers.promiseWrapper(Paystack.getIntegration(integration.id, token)); |
48 | | - if (err) { |
49 | | - helpers.errorLog(err); |
50 | | - return |
51 | | - } |
52 | | - integrationData.logged_in_user_role = user_role; |
53 | | - db.write('selected_integration', integrationData); |
54 | | - helpers.infoLog('Logged in as ' + user.email + ' - ' + integration.business_name + ' (' + integration.id + ')'); |
| 29 | + } |
| 30 | + |
| 31 | + if (token && user) { |
| 32 | + const [err, integration] = await helpers.promiseWrapper( |
| 33 | + Paystack.selectIntegration(user.integrations, token), |
| 34 | + ); |
| 35 | + if (err) { |
| 36 | + helpers.errorLog(err); |
55 | 37 | } else { |
56 | | - helpers.errorLog(' - - - - - - ') |
| 38 | + db.write('selected_integration', integration); |
| 39 | + let user_role = db.read('selected_integration').logged_in_user_role; |
| 40 | + const [err, integrationData] = await helpers.promiseWrapper( |
| 41 | + Paystack.getIntegration(integration.id, token), |
| 42 | + ); |
| 43 | + if (err) { |
| 44 | + helpers.errorLog(err); |
| 45 | + return; |
| 46 | + } |
| 47 | + integrationData.logged_in_user_role = user_role; |
| 48 | + db.write('selected_integration', integrationData); |
| 49 | + helpers.infoLog( |
| 50 | + 'Logged in as ' + |
| 51 | + user.email + |
| 52 | + ' - ' + |
| 53 | + integration.business_name + |
| 54 | + ' (' + |
| 55 | + integration.id + |
| 56 | + ')', |
| 57 | + ); |
57 | 58 | } |
58 | | - }) |
59 | | -} |
| 59 | + } else { |
| 60 | + helpers.errorLog(' - - - - - - '); |
| 61 | + } |
| 62 | + }); |
| 63 | +}; |
60 | 64 |
|
61 | | -module.exports = init |
| 65 | +export default init; |
0 commit comments