X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=cli%2Factions.js;h=5ad9dc69b95a1c8425c88935d369f47c820950dd;hb=1dc31c5f662ff85bfe7ff30227a40384d6f08bb5;hp=ea2a3a1d1e5b6280151bf3ea7076b31da54c902d;hpb=e628921a338684a4bc3f196c5c39beba8b8f9b68;p=perso%2FImmae%2FProjets%2FNodejs%2FSurfer.git diff --git a/cli/actions.js b/cli/actions.js index ea2a3a1..5ad9dc6 100644 --- a/cli/actions.js +++ b/cli/actions.js @@ -1,6 +1,7 @@ 'use strict'; exports.login = login; +exports.logout = logout; exports.put = put; exports.get = get; exports.del = del; @@ -22,12 +23,12 @@ var API = '/api/files/'; var gQuery = {}; function checkConfig() { - if (!config.server() || !config.username() || !config.password()) { + if (!config.server() || !config.accessToken()) { console.log('You have run "login" first'); process.exit(1); } - gQuery = { username: config.username(), password: config.password() }; + gQuery = { access_token: config.accessToken() }; console.error('Using server %s', config.server().cyan); } @@ -63,9 +64,9 @@ function login(uri) { console.log('Using server', server.cyan); var username = readlineSync.question('Username: '); - var password = readlineSync.question('Password: ', { noEchoBack: true }); + var password = readlineSync.question('Password: ', { hideEchoBack: true, mask: '' }); - superagent.get(server + API + '/').query({ username: username, password: password }).end(function (error, result) { + superagent.post(server + '/api/login').send({ username: username, password: password }).end(function (error, result) { if (error && error.code === 'ENOTFOUND') { console.log('Server %s not found.'.red, server.bold); process.exit(1); @@ -74,20 +75,36 @@ function login(uri) { console.log('Failed to connect to server %s'.red, server.bold, error.code); process.exit(1); } - if (result.status === 401) { - console.log('Login failed.'.red); - process.exit(1); + if (result.status !== 201) { + console.log('Login failed.\n'.red); + return login(uri); } + // TODO remove at some point, this is just to clear the previous old version values + config.set('username', ''); + config.set('password', ''); + config.set('server', server); - config.set('username', username); + config.set('accessToken', result.body.accessToken); - // TODO this is clearly bad and needs fixing - config.set('password', password); + console.log('Login successful'.green); + }); +} - gQuery = { username: username, password: password }; +function logout() { + checkConfig(); - console.log('Login successful'.green); + superagent.post(config.server() + '/api/logout').query(gQuery).end(function (error, result) { + if (result && result.statusCode !== 200) console.log('Failed to logout: ' + result.statusCode); + if (error) console.log(error); + + // TODO remove at some point, this is just to clear the previous old version values + config.set('username', ''); + config.set('password', ''); + config.set('server', ''); + config.set('accessToken', ''); + + console.log('Done'.green); }); }