mirror of https://github.com/BTCPrivate/copay.git
Add settings for Coinbase
This commit is contained in:
parent
72c99fb876
commit
cc8d75a2f5
|
@ -6,4 +6,49 @@
|
|||
|
||||
<ion-content>
|
||||
|
||||
<ion-list *ngIf="coinbaseAccount && coinbaseAccount.balance">
|
||||
<ion-item-divider>Account</ion-item-divider>
|
||||
<ion-item>
|
||||
<span>ID</span>
|
||||
<ion-note item-end>
|
||||
{{coinbaseAccount.id}}
|
||||
</ion-note>
|
||||
</ion-item>
|
||||
<ion-item>
|
||||
<span>Name</span>
|
||||
<ion-note item-end>
|
||||
{{coinbaseAccount.name}}
|
||||
</ion-note>
|
||||
</ion-item>
|
||||
<ion-item>
|
||||
<span>Balance</span>
|
||||
<ion-note item-end>
|
||||
{{coinbaseAccount.balance.amount}} {{coinbaseAccount.balance.currency}}
|
||||
</ion-note>
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
|
||||
<ion-list *ngIf="coinbaseUser">
|
||||
<ion-item-divider>User Information</ion-item-divider>
|
||||
<ion-item>
|
||||
<span>ID</span>
|
||||
<ion-note item-end>
|
||||
{{coinbaseUser.id}}
|
||||
</ion-note>
|
||||
</ion-item>
|
||||
<ion-item>
|
||||
<span>Email</span>
|
||||
<ion-note item-end>
|
||||
{{coinbaseUser.email}}
|
||||
</ion-note>
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
|
||||
<ion-list>
|
||||
<ion-item-divider></ion-item-divider>
|
||||
<button ion-item (click)="revokeToken()">
|
||||
<span class="assertive">Log out</span>
|
||||
</button>
|
||||
</ion-list>
|
||||
|
||||
</ion-content>
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -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<any> {
|
||||
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',
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue