1 | var glob = require("glob");
|
2 | var fs = require('fs-extra');
|
3 | var path = require('path');
|
4 | var Domo = require('ryuu-client-beta');
|
5 | var home = Domo.getHomeDir();
|
6 | var log = require('./log');
|
7 |
|
8 | module.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 |
|
29 |
|
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 | }
|