Skip to content

Commit

Permalink
feat(gDriveSync): add auto login
Browse files Browse the repository at this point in the history
  • Loading branch information
johannesjo committed Mar 9, 2018
1 parent 29d5f17 commit c3885ac
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 22 deletions.
16 changes: 14 additions & 2 deletions app-src/scripts/main/global-services/google-api-s.js
Expand Up @@ -88,6 +88,7 @@

if (this.$rootScope.r.googleTokens.accessToken && !isExpired) {
this.accessToken = this.$rootScope.r.googleTokens.accessToken;
this.isLoggedIn = true;
return new Promise((resolve) => resolve());
}

Expand All @@ -99,6 +100,7 @@
this.accessToken = token;
this.$rootScope.r.googleTokens.accessToken = this.accessToken;
//this.$rootScope.r.googleTokens.refreshToken = data.refresh_token;
this.isLoggedIn = true;
resolve();
// TODO remove
// mainWindow.webContents.removeListener('did-finish-load', handler);
Expand All @@ -109,11 +111,13 @@
return this.initClientLibraryIfNotDone()
.then((user) => {
if (user && user.Zi && user.Zi.access_token) {
this.isLoggedIn = true;
this.saveToken(user);
} else {
return window.gapi.auth2.getAuthInstance().signIn()
.then((res) => {
console.log(res);
this.isLoggedIn = true;
this.saveToken(res);
});
}
Expand All @@ -131,19 +135,27 @@
}

logout() {
this.isLoggedIn = false;

if (this.IS_ELECTRON) {
this.accessToken = undefined;
this.$rootScope.r.googleTokens.accessToken = undefined;
return new Promise((resolve) => {
resolve();
});
} else {
return window.gapi.auth2.getAuthInstance().signOut();
if (window.gapi) {
return window.gapi.auth2.getAuthInstance().signOut();
} else {
return new Promise((resolve) => {
resolve();
});
}
}
}

handleError(err) {
console.log(err);
this.$log(err);
this.SimpleToast('ERROR', 'GoogleApi Error');
return this.$q.reject();
}
Expand Down
15 changes: 13 additions & 2 deletions app-src/scripts/main/global-services/google-drive-sync-s.js
Expand Up @@ -13,10 +13,17 @@

class GoogleDriveSync {
/* @ngInject */
constructor(AppStorage, GoogleApi, $rootScope) {
constructor(AppStorage, GoogleApi, $rootScope, SimpleToast, $q) {
this.AppStorage = AppStorage;
this.GoogleApi = GoogleApi;
this.$rootScope = $rootScope;
this.SimpleToast = SimpleToast;
this.$q = $q;

if (this.$rootScope.r.config.googleDriveSync.isAutoLogin) {
GoogleApi.login();
}

}

getLocalAppData() {
Expand All @@ -37,7 +44,11 @@
}

loadFrom() {
return this.GoogleApi.loadFile(this.$rootScope.r.googleDriveSync.backupDocId);
return this.GoogleApi.loadFile(this.$rootScope.r.googleDriveSync.backupDocId)
.then((res) => {
console.log(res);
return this.$q.when(res);
});
}
}

Expand Down
10 changes: 5 additions & 5 deletions app-src/scripts/settings/backup-settings/backup-settings-d.html
Expand Up @@ -39,20 +39,20 @@ <h3 class="md-caption">Sync via Google Drive</h3>
<div>
<md-button class="md-raised md-primary"
promise-btn
ng-show="!vm.isLoggedIn"
ng-show="!vm.GoogleApi.isLoggedIn"
ng-click="vm.login()">
<ng-md-icon icon="login"></ng-md-icon>
Login
</md-button>
<md-button class="md-raised md-primary"
ng-show="vm.isLoggedIn"
ng-show="vm.GoogleApi.isLoggedIn"
ng-click="vm.logout()">
<ng-md-icon icon="logout"></ng-md-icon>
Logout
</md-button>

<md-button class="md-raised md-primary"
ng-show="vm.isLoggedIn"
ng-show="vm.GoogleApi.isLoggedIn"
external-link
target="_blank"
href="https://myaccount.google.com/permissions">
Expand All @@ -61,14 +61,14 @@ <h3 class="md-caption">Sync via Google Drive</h3>
</md-button>
<md-button class="md-raised md-primary"
promise-btn
ng-show="vm.isLoggedIn"
ng-show="vm.GoogleApi.isLoggedIn"
ng-click="vm.backupNow()">
<ng-md-icon icon="backup"></ng-md-icon>
Save Backup now
</md-button>
<md-button class="md-raised md-primary sync-from-btn"
promise-btn
ng-show="vm.isLoggedIn"
ng-show="vm.GoogleApi.isLoggedIn"
ng-click="vm.loadRemoteData()">
<ng-md-icon icon="backup"></ng-md-icon>
Load from Google Drive
Expand Down
17 changes: 4 additions & 13 deletions app-src/scripts/settings/backup-settings/backup-settings-d.js
Expand Up @@ -54,23 +54,14 @@
};

vm.login = () => {
vm.isLoading = true;

return GoogleApi.login()
.then(() => {
vm.isLoggedIn = true;
vm.isLoading = false;
});
return GoogleApi.login();
};

vm.logout = () => {
vm.isLoading = true;
return GoogleApi.logout()
.then(() => {
vm.isLoggedIn = false;
vm.isLoading = false;
});
return GoogleApi.logout();
};

vm.GoogleApi = GoogleApi;
}

})();

0 comments on commit c3885ac

Please sign in to comment.