refactor: isolate network toast and login redirect to separate services (#1412)

* refactor: isolate network toast and login redirect to separate services

* chore: remove accidentally committed sketch of a service

* chore: tidying things up

* feat: add `GlobalModule` encapsulating all global subscription services

* remove angular build cache when building deps

* chore: fix more issues found while testing

* chore: fix issues reported by testing

* chore: fix template error

* chore: fix server-info

* chore: fix server-info

* fix: switch to Observable to fix race conditions

* fix embassy name display on load

* update patchdb

* clean up patch data watch

Co-authored-by: Lucy Cifferello <12953208+elvece@users.noreply.github.com>
This commit is contained in:
Alex Inkin
2022-05-27 01:56:47 +03:00
committed by GitHub
parent 4829637b46
commit 4f3223d3ad
88 changed files with 1379 additions and 1079 deletions

View File

@@ -0,0 +1,10 @@
import { HttpErrorResponse } from '@angular/common/http'
export class HttpError {
readonly code = this.error.status
readonly message = this.error.statusText
readonly details = null
readonly revision = null
constructor(private readonly error: HttpErrorResponse) {}
}

View File

@@ -0,0 +1,25 @@
import { RpcErrorDetails } from '../types/rpc-error-details'
export class RpcError<T> {
readonly code = this.error.code
readonly message = this.getMessage()
readonly revision = this.getRevision()
constructor(private readonly error: RpcErrorDetails<T>) {}
private getMessage(): string {
if (typeof this.error.data === 'string') {
return `${this.error.message}\n\n${this.error.data}`
}
return this.error.data.details
? `${this.error.message}\n\n${this.error.data.details}`
: this.error.message
}
private getRevision(): T | null {
return typeof this.error.data === 'string'
? null
: this.error.data.revision || null
}
}