diff --git a/src/pages/integrations/coinbase/coinbase-settings/coinbase-settings.html b/src/pages/integrations/coinbase/coinbase-settings/coinbase-settings.html
index 458cea356..090610c42 100644
--- a/src/pages/integrations/coinbase/coinbase-settings/coinbase-settings.html
+++ b/src/pages/integrations/coinbase/coinbase-settings/coinbase-settings.html
@@ -6,4 +6,49 @@
+
+ Account
+
+ ID
+
+ {{coinbaseAccount.id}}
+
+
+
+ Name
+
+ {{coinbaseAccount.name}}
+
+
+
+ Balance
+
+ {{coinbaseAccount.balance.amount}} {{coinbaseAccount.balance.currency}}
+
+
+
+
+
+ User Information
+
+ ID
+
+ {{coinbaseUser.id}}
+
+
+
+ Email
+
+ {{coinbaseUser.email}}
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/integrations/coinbase/coinbase-settings/coinbase-settings.ts b/src/pages/integrations/coinbase/coinbase-settings/coinbase-settings.ts
index 9693f5d85..8be49581a 100644
--- a/src/pages/integrations/coinbase/coinbase-settings/coinbase-settings.ts
+++ b/src/pages/integrations/coinbase/coinbase-settings/coinbase-settings.ts
@@ -1,6 +1,10 @@
import { Component } from '@angular/core';
-import { ViewController, NavParams } from 'ionic-angular';
+import { NavController } from 'ionic-angular';
+import * as _ from 'lodash';
+import { Logger } from '../../../../providers/logger/logger';
+import { OnGoingProcessProvider } from '../../../../providers/on-going-process/on-going-process';
+import { PopupProvider } from '../../../../providers/popup/popup';
import { CoinbaseProvider } from '../../../../providers/coinbase/coinbase';
@Component({
@@ -9,11 +13,58 @@ import { CoinbaseProvider } from '../../../../providers/coinbase/coinbase';
})
export class CoinbaseSettingsPage {
+ public coinbaseAccount: any;
+ public coinbaseUser: any;
+
constructor(
- public viewCtrl: ViewController,
- public coinbaseProvider: CoinbaseProvider,
- public navParams: NavParams
+ private navCtrl: NavController,
+ private onGoingProcessProvider: OnGoingProcessProvider,
+ private popupProvider: PopupProvider,
+ private logger: Logger,
+ private coinbaseProvider: CoinbaseProvider
) {
}
+ ionViewDidLoad() {
+ this.onGoingProcessProvider.set('connectingCoinbase', true);
+ this.coinbaseProvider.init((err, data) => {
+ if (err || _.isEmpty(data)) {
+ this.onGoingProcessProvider.set('connectingCoinbase', false);
+ if (err) {
+ this.logger.error(err);
+ let errorId = err.errors ? err.errors[0].id : null;
+ err = err.errors ? err.errors[0].message : err;
+ this.popupProvider.ionicAlert('Error connecting to Coinbase', err).then(() => {
+ if (errorId == 'revoked_token') {
+ this.coinbaseProvider.logout();
+ this.navCtrl.popToRoot();
+ }
+ });
+ }
+ return;
+ }
+ let accessToken = data.accessToken;
+ let accountId = data.accountId;
+ this.coinbaseProvider.getAccount(accessToken, accountId, (err, account) => {
+ this.onGoingProcessProvider.set('connectingCoinbase', false);
+ this.coinbaseAccount = account.data[0];
+ });
+ this.coinbaseProvider.getCurrentUser(accessToken, (err, user) => {
+ this.coinbaseUser = user.data;
+ });
+ });
+ }
+
+ public revokeToken() {
+ this.popupProvider.ionicConfirm(
+ 'Coinbase',
+ 'Are you sure you would like to log out of your Coinbase account?'
+ ).then((res) => {
+ if (res) {
+ this.coinbaseProvider.logout();
+ this.navCtrl.popToRoot();
+ }
+ });
+ };
+
}
diff --git a/src/pages/integrations/glidera/glidera-settings/glidera-settings.ts b/src/pages/integrations/glidera/glidera-settings/glidera-settings.ts
index a8252dc58..efbcda7a4 100644
--- a/src/pages/integrations/glidera/glidera-settings/glidera-settings.ts
+++ b/src/pages/integrations/glidera/glidera-settings/glidera-settings.ts
@@ -1,8 +1,7 @@
import { Component } from '@angular/core';
-import { NavParams, NavController, ModalController } from 'ionic-angular';
+import { NavController } from 'ionic-angular';
import { Logger } from '../../../../providers/logger/logger';
-import { HomePage } from '../../../home/home';
import { GlideraProvider } from '../../../../providers/glidera/glidera';
import { PopupProvider } from '../../../../providers/popup/popup';
@@ -15,7 +14,6 @@ export class GlideraSettingsPage {
public account: any;
constructor(
- private navParams: NavParams,
private navCtrl: NavController,
private popupProvider: PopupProvider,
private logger: Logger,
@@ -46,17 +44,6 @@ export class GlideraSettingsPage {
});
}
- private showError = function (title: string, msg: any): Promise {
- return new Promise((resolve, reject) => {
- title = title || 'Error'; // TODO: gettextCatalog
- this.logger.error(msg);
- msg = (msg && msg.errors) ? msg.errors[0].message : msg;
- this.popupProvider.ionicAlert(title, msg).then(() => {
- return resolve();
- });
- });
- }
-
public revokeToken() {
this.popupProvider.ionicConfirm(
'Glidera',
diff --git a/src/providers/coinbase/coinbase.ts b/src/providers/coinbase/coinbase.ts
index 1e9de3056..695a08ae5 100644
--- a/src/providers/coinbase/coinbase.ts
+++ b/src/providers/coinbase/coinbase.ts
@@ -126,6 +126,7 @@ export class CoinbaseProvider {
if (data && data.access_token && data.refresh_token) {
this.persistenceProvider.setCoinbaseToken(this.credentials.NETWORK, data.access_token)
this.persistenceProvider.setCoinbaseRefreshToken(this.credentials.NETWORK, data.refresh_token)
+ this.homeIntegrationsProvider.update('coinbase', data.access_token); // Name, Token
return cb(null, data.access_token);
} else {
return cb('Could not get the access token');
@@ -309,6 +310,7 @@ export class CoinbaseProvider {
this.persistenceProvider.removeCoinbaseToken(this.credentials.NETWORK);
this.persistenceProvider.removeCoinbaseRefreshToken(this.credentials.NETWORK);
this.persistenceProvider.removeCoinbaseTxs(this.credentials.NETWORK);
+ this.homeIntegrationsProvider.update('coinbase', null); // Name, Token
}