Commit 8ab94858 authored by Pieterjan Vanhoof's avatar Pieterjan Vanhoof Committed by GitHub

Merge pull request #120 from stratisproject/ui

- Wait on API to load UI
- Add basic error handling to API calls
parents ce03cf34 152d31ba
...@@ -9,6 +9,8 @@ const path = require('path'); ...@@ -9,6 +9,8 @@ const path = require('path');
const url = require('url'); const url = require('url');
const os = require('os'); const os = require('os');
var apiProcess;
let serve; let serve;
const args = process.argv.slice(1); const args = process.argv.slice(1);
serve = args.some(val => val === "--serve"); serve = args.some(val => val === "--serve");
...@@ -66,6 +68,7 @@ app.on('window-all-closed', function () { ...@@ -66,6 +68,7 @@ app.on('window-all-closed', function () {
// On OS X it is common for applications and their menu bar // On OS X it is common for applications and their menu bar
// to stay active until the user quits explicitly with Cmd + Q // to stay active until the user quits explicitly with Cmd + Q
if (process.platform !== 'darwin') { if (process.platform !== 'darwin') {
//apiProcess.kill();
app.quit(); app.quit();
} }
}); });
...@@ -79,16 +82,15 @@ app.on('activate', function () { ...@@ -79,16 +82,15 @@ app.on('activate', function () {
}); });
function startApi() { function startApi() {
var apiProcess; const exec = require('child_process').exec;
const spawn = require('child_process').spawn;
//Start Breeze Daemon //Start Breeze Daemon
let apipath = path.join(__dirname, '..//..//daemon//Breeze.Daemon'); let apipath = path.join(__dirname, './/assets//daemon//Breeze.Daemon');
if (os.platform() === 'win32') { if (os.platform() === 'win32') {
apipath = path.join(__dirname, '.\\assets\\daemon\\Breeze.Daemon.exe'); apipath = path.join(__dirname, '.\\assets\\daemon\\Breeze.Daemon.exe');
} }
apiProcess = spawn(apipath + ' light -testnet', { apiProcess = exec(apipath + ' light -testnet', {
detached: true detached: true
}); });
......
<router-outlet></router-outlet> <div *ngIf="loading">Loading...</div>
\ No newline at end of file <router-outlet *ngIf="!loading"></router-outlet>
...@@ -3,6 +3,9 @@ import { Router } from '@angular/router'; ...@@ -3,6 +3,9 @@ import { Router } from '@angular/router';
import { ApiService } from './shared/services/api.service'; import { ApiService } from './shared/services/api.service';
import 'rxjs/add/operator/retryWhen';
import 'rxjs/add/operator/delay';
@Component({ @Component({
selector: 'app-root', selector: 'app-root',
templateUrl: './app.component.html', templateUrl: './app.component.html',
...@@ -13,8 +16,14 @@ export class AppComponent implements OnInit { ...@@ -13,8 +16,14 @@ export class AppComponent implements OnInit {
constructor(private router: Router, private apiService: ApiService) {} constructor(private router: Router, private apiService: ApiService) {}
private errorMessage: any; private errorMessage: any;
private responseMessage: any; private responseMessage: any;
private loading: boolean = true;
ngOnInit() { ngOnInit() {
this.apiService.getWalletFiles().retryWhen(errors => errors.delay(2000)).subscribe(() => this.startApp());
}
startApp() {
this.loading = false;
this.router.navigate(['/login']); this.router.navigate(['/login']);
} }
} }
...@@ -104,10 +104,10 @@ export class LoginComponent implements OnInit { ...@@ -104,10 +104,10 @@ export class LoginComponent implements OnInit {
} }
}, },
error => { error => {
let errorMessage = <any>error; if (error.status === 0) {
if (error.status >= 400) { alert("Something went wrong while connecting to the API. Please restart the application.");
alert(errorMessage); } else if (error.status >= 400) {
console.log(errorMessage); alert(error);
} }
} }
) )
...@@ -125,12 +125,10 @@ export class LoginComponent implements OnInit { ...@@ -125,12 +125,10 @@ export class LoginComponent implements OnInit {
} }
}, },
error => { error => {
let errorMessage = <any>error; if (error.status === 0) {
if (error.status === 403 && error.json().errors[0].message === "Wrong password, please try again.") { alert("Something went wrong while connecting to the API. Please restart the application.");
alert("Wrong password, try again.");
} else if (error.status >= 400) { } else if (error.status >= 400) {
alert(errorMessage); alert(error);
console.log(errorMessage);
} }
} }
) )
......
...@@ -98,9 +98,10 @@ export class CreateComponent { ...@@ -98,9 +98,10 @@ export class CreateComponent {
} }
}, },
error => { error => {
if (error.status >= 400) { if (error.status === 0) {
let errorMessage = error; alert("Something went wrong while connecting to the API. Please restart the application.");
console.log(errorMessage); } else if (error.status >= 400) {
alert(error);
} }
} }
) )
......
...@@ -112,9 +112,10 @@ export class RecoverComponent implements OnInit { ...@@ -112,9 +112,10 @@ export class RecoverComponent implements OnInit {
} }
}, },
error => { error => {
if (error.status >= 400) { if (error.status === 0) {
this.errorMessage = error; alert("Something went wrong while connecting to the API. Please restart the application.");
console.log(this.errorMessage); } else if (error.status >= 400) {
alert(error);
} }
} }
); );
......
...@@ -6,8 +6,6 @@ ...@@ -6,8 +6,6 @@
<div class="p">Unconfirmed Balance: {{unconfirmedBalance | coinNotation }}</div> <div class="p">Unconfirmed Balance: {{unconfirmedBalance | coinNotation }}</div>
</div> </div>
<div class="d-flex flex-column"> <div class="d-flex flex-column">
<!--<div>Current Value</div>
<div>Over 9000</div>-->
</div> </div>
<div class="d-flex flex-column ml-auto"> <div class="d-flex flex-column ml-auto">
<div> <div>
...@@ -28,8 +26,6 @@ ...@@ -28,8 +26,6 @@
<th>Timestamp</th> <th>Timestamp</th>
</thead> </thead>
<tr *ngFor="let transaction of transactions; let i=index"> <tr *ngFor="let transaction of transactions; let i=index">
<!--<td *ngIf="{{ transaction.amount }} < 0">SENT</td>
<td *ngIf="{{ transaction.amount }} > 0">RECEIVED</td>-->
<td *ngIf="i<5">{{ transaction.type }}</td> <td *ngIf="i<5">{{ transaction.type }}</td>
<td *ngIf="i<5">{{ transaction.amount | coinNotation }}</td> <td *ngIf="i<5">{{ transaction.amount | coinNotation }}</td>
<td *ngIf="i<5">{{ transaction.id }}</td> <td *ngIf="i<5">{{ transaction.id }}</td>
......
...@@ -50,17 +50,18 @@ export class DashboardComponent { ...@@ -50,17 +50,18 @@ export class DashboardComponent {
this.walletBalanceSubscription = this.apiService.getWalletBalance(walletInfo) this.walletBalanceSubscription = this.apiService.getWalletBalance(walletInfo)
.subscribe( .subscribe(
response => { response => {
if (response.status >= 200 && response.status < 400) { if (response.status >= 200 && response.status < 400) {
let balanceResponse = response.json(); let balanceResponse = response.json();
this.confirmedBalance = balanceResponse.balances[0].amountConfirmed; this.confirmedBalance = balanceResponse.balances[0].amountConfirmed;
this.unconfirmedBalance = balanceResponse.balances[0].amountUnconfirmed; this.unconfirmedBalance = balanceResponse.balances[0].amountUnconfirmed;
} }
}, },
error => { error => {
if (error.status >= 400) { if (error.status === 0) {
let errorMessage = <any>error; alert("Something went wrong while connecting to the API. Please restart the application.");
console.log(errorMessage); } else if (error.status >= 400) {
} alert(error);
}
} }
) )
; ;
...@@ -78,9 +79,10 @@ export class DashboardComponent { ...@@ -78,9 +79,10 @@ export class DashboardComponent {
} }
}, },
error => { error => {
if (error.status >= 400) { if (error.status === 0) {
let errorMessage = <any>error; alert("Something went wrong while connecting to the API. Please restart the application.");
console.log(errorMessage); } else if (error.status >= 400) {
alert(error);
} }
} }
) )
......
...@@ -41,9 +41,10 @@ export class HistoryComponent { ...@@ -41,9 +41,10 @@ export class HistoryComponent {
} }
}, },
error => { error => {
if (error.status >= 400) { if (error.status === 0) {
this.errorMessage = <any>error; alert("Something went wrong while connecting to the API. Please restart the application.");
console.log(this.errorMessage); } else if (error.status >= 400) {
alert(error);
} }
} }
) )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment