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 }