63 lines
1.9 KiB
TypeScript
Executable File
63 lines
1.9 KiB
TypeScript
Executable File
import UIkit from 'uikit';
|
|
import {HttpErrorResponse} from '@angular/common/http';
|
|
import { saveAs } from 'file-saver/FileSaver';
|
|
import { Response } from '@angular/http';
|
|
import {ErrorObservable} from 'rxjs/observable/ErrorObservable';
|
|
import { environment } from '../environments/environment';
|
|
import {Observable} from 'rxjs';
|
|
|
|
export class Util {
|
|
|
|
public handleError (err: HttpErrorResponse): ErrorObservable {
|
|
if (err.error instanceof Error) {
|
|
console.error('Client-side error occured.');
|
|
} else {
|
|
console.error('Server-side error occured.');
|
|
}
|
|
console.log(err);
|
|
UIkit.notification({
|
|
message: err.message,
|
|
status: 'danger',
|
|
pos: 'top-center',
|
|
timeout: 0
|
|
});
|
|
return Observable.throw(err || 'Server error');
|
|
}
|
|
|
|
public getUserId(): string {
|
|
return localStorage.getItem('user_id');
|
|
}
|
|
|
|
public getBackendServerAddress(): string {
|
|
// return localStorage.getItem('mining_backend_address');
|
|
return environment.miningbackendserveraddress;
|
|
}
|
|
|
|
public getIsCommunityManager(): string {
|
|
return localStorage.getItem('isCommunityManager');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Saves a file by opening file-save-as dialog in the browser
|
|
* using file-save library.
|
|
* @param blobContent file content as a Blob
|
|
* @param fileName name file should be saved as
|
|
*/
|
|
export const saveFile = (blobContent: Blob, fileName: string) => {
|
|
const blob = new Blob([blobContent], { type: 'application/octet-stream' });
|
|
saveAs(blob, fileName);
|
|
};
|
|
|
|
/**
|
|
* Derives file name from the http response
|
|
* by looking inside content-disposition
|
|
* @param res http Response
|
|
*/
|
|
export const getFileNameFromResponseContentDisposition = (res: Response) => {
|
|
const contentDisposition = res.headers.get('content-disposition') || '';
|
|
const matches = /filename=([^;]+)/ig.exec(contentDisposition);
|
|
const fileName = (matches[1] || 'untitled').trim();
|
|
return fileName;
|
|
};
|