Skip to content

Commit 5fe2fd5

Browse files
Added a command for setting up a new user.
* This is more secure than API registration * Also lint bin/www Signed-off-by: Stanley Masinde <stanmasinde@gmail.com> Changes: modified: bin/www new file: setup
1 parent cc79ab9 commit 5fe2fd5

2 files changed

Lines changed: 72 additions & 38 deletions

File tree

bin/www

Lines changed: 40 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,90 +1,92 @@
11
#!/usr/bin/env node
2+
/* eslint-disable no-console */
3+
/* eslint-disable complexity */
24

35
/**
46
* Module dependencies.
57
*/
68

7-
const app = require('../app');
8-
const debug = require('debug')('deployer:server');
9-
const http = require('http');
9+
const app = require('../app')
10+
const debug = require('debug')('deployer:server')
11+
const http = require('http')
1012

1113
/**
1214
* Get port from environment and store in Express.
1315
*/
1416

15-
const port = normalizePort(process.env.PORT || '3000');
16-
app.set('port', port);
17+
const port = normalizePort(process.env.PORT || '3000')
18+
app.set('port', port)
1719

1820
/**
1921
* Create HTTP server.
2022
*/
2123

22-
const server = http.createServer(app);
24+
const server = http.createServer(app)
2325

2426
/**
2527
* Listen on provided port, on all network interfaces.
2628
*/
2729

28-
server.listen(port);
29-
server.on('error', onError);
30-
server.on('listening', onListening);
30+
server.listen(port)
31+
server.on('error', onError)
32+
server.on('listening', onListening)
3133

3234
/**
3335
* Normalize a port into a number, string, or false.
3436
*/
3537

3638
function normalizePort(val) {
37-
const port = parseInt(val, 10);
39+
const port = parseInt(val, 10)
3840

39-
if (isNaN(port)) {
41+
if (isNaN(port)) {
4042
// named pipe
41-
return val;
42-
}
43+
return val
44+
}
4345

44-
if (port >= 0) {
46+
if (port >= 0) {
4547
// port number
46-
return port;
47-
}
48+
return port
49+
}
4850

49-
return false;
51+
return false
5052
}
5153

5254
/**
5355
* Event listener for HTTP server "error" event.
5456
*/
5557

5658
function onError(error) {
57-
if (error.syscall !== 'listen') {
58-
throw error;
59-
}
59+
if (error.syscall !== 'listen') {
60+
throw error
61+
}
6062

61-
const bind = typeof port === 'string'
62-
? 'Pipe ' + port
63-
: 'Port ' + port;
63+
const bind = typeof port === 'string'
64+
? 'Pipe ' + port
65+
: 'Port ' + port
6466

65-
// handle specific listen errors with friendly messages
66-
switch (error.code) {
67+
// handle specific listen errors with friendly messages
68+
switch (error.code) {
6769
case 'EACCES':
68-
console.error(bind + ' requires elevated privileges');
69-
process.exit(1);
70-
break;
70+
console.error(bind + ' requires elevated privileges')
71+
process.exit(1)
72+
break
7173
case 'EADDRINUSE':
72-
console.error(bind + ' is already in use');
73-
process.exit(1);
74-
break;
74+
console.error(bind + ' is already in use')
75+
process.exit(1)
76+
break
7577
default:
76-
throw error;
77-
}
78+
throw error
79+
}
7880
}
7981

8082
/**
8183
* Event listener for HTTP server "listening" event.
8284
*/
8385

8486
function onListening() {
85-
const addr = server.address();
86-
const bind = typeof addr === 'string'
87-
? 'pipe ' + addr
88-
: 'port ' + addr.port;
89-
debug('Listening on ' + bind);
87+
const addr = server.address()
88+
const bind = typeof addr === 'string'
89+
? 'pipe ' + addr
90+
: 'port ' + addr.port
91+
debug('Listening on ' + bind)
9092
}

setup

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#!/usr/bin/env node
2+
/* eslint-disable no-console */
3+
4+
const readline = require('readline')
5+
const os = require('os')
6+
const User = require('./web/app/models/User')
7+
8+
const rl = readline.createInterface({
9+
input: process.stdin,
10+
output: process.stdout,
11+
})
12+
13+
rl.question('Your name: ', (name) => {
14+
rl.question('Your email: ', (email) => {
15+
rl.question('Choose password: ', (password) => {
16+
(async function register() {
17+
const {status, message} = await User.register({name, email, password})
18+
if (status === 500) {
19+
console.warn(message)
20+
}
21+
console.log(`Hi, ${name}, please use ${email} and ${password} as your logins`)
22+
rl.close()
23+
})()
24+
})
25+
})
26+
})
27+
28+
29+
rl.on('close', () => {
30+
console.log(`\n Bye ${os.userInfo().username}`)
31+
process.exit(0)
32+
})

0 commit comments

Comments
 (0)