UNPKG

1.87 kBJavaScriptView Raw
1var glob = require("glob");
2var fs = require('fs-extra');
3var path = require('path');
4var Domo = require('ryuu-client-beta');
5var home = Domo.getHomeDir();
6var log = require('./log');
7
8module.exports = {
9 getMostRecentLogin: function(){
10 var logins = glob.sync(home + "/login/*.json");
11 if (logins.length === 0) return {};
12
13 var recent = logins.reduce(function(prev, next){
14 return fs.statSync(prev).mtime > fs.statSync(next).mtime ? prev : next;
15 });
16 return fs.readJsonSync(recent);
17 },
18
19 getPreviousLogins: function(){
20 var logins = (glob.sync(home + "/login/*.json") || [])
21 .map(function(file){
22 return fs.readJsonSync(file);
23 });
24 return logins;
25 },
26
27 /**
28 * persist login to user's domo home
29 * TODO: REFACTOR w writeLogin
30 */
31 persistLogin: function(instance){
32
33 return function(login){
34 var loginFile = path.resolve(home + '/login/' + instance + '.json');
35 fs.ensureFileSync(loginFile);
36 var data = { instance: instance };
37 if (login.refreshToken){
38 data.refreshToken = login.refreshToken
39 }
40 fs.writeJsonSync(loginFile, data);
41 return login;
42 };
43 },
44
45 verifyLogin: function(login){
46 if (!login.refreshToken){
47 log.fail('Not authenticated', 'Please login using "domo login"');
48 }
49 },
50
51 verifyLogout: function(login, instance){
52 if (!login.refreshToken){
53 log.ok('Successful logout from ' + instance);
54 return true;
55 }
56 return false;
57 },
58
59 writeLogin: function(login){
60 var loginFile = path.resolve(home + '/login/' + login.instance + '.json');
61 fs.ensureFileSync(loginFile);
62 fs.writeJsonSync(loginFile, login);
63 },
64
65 getLogin: function(instance){
66 try{
67 return fs.readJsonSync(path.resolve(home + '/login/' + instance + '.json'), {throws: false});
68 }
69 catch (ex){
70 return {};
71 }
72 }
73}