UNPKG

@cardboard-box/ngx-box

Version:

A collection of useful directives, components and services for angular

66 lines 10.8 kB
import { Injectable } from "@angular/core"; import { tap } from "rxjs"; import { saveAs } from "file-saver"; import { RxjsHttpResp } from './helpers/rxjs-http-resp.helper'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common/http"; import * as i2 from "./config.service"; export class HttpService { constructor(http, config) { this.http = http; this.config = config; } fallback(url, group = 'fallback', referer) { var path = encodeURIComponent(url); let uri = `${this.config.corsFallback}/proxy?path=${path}&group=${group}`; if (referer) uri += `&referer=${encodeURIComponent(referer)}`; return uri; } formatUrl(url) { if (url.indexOf('https://') !== -1 || url.indexOf('http://') !== -1) return url; if (url.startsWith('/')) url = url.substring(1); return `${this.config.apiUrl}/${url}`; } get(url, options) { let req = this.http.get(this.formatUrl(url), options); return new RxjsHttpResp(req, url, this.config.isProd); } post(url, body, options) { let req = this.http.post(this.formatUrl(url), body, options); return new RxjsHttpResp(req, url, this.config.isProd); } put(url, body, options) { let req = this.http.put(this.formatUrl(url), body, options); return new RxjsHttpResp(req, url, this.config.isProd); } delete(url, options) { let req = this.http.delete(this.formatUrl(url), options); return new RxjsHttpResp(req, url, this.config.isProd); } download(url, body) { const u = this.formatUrl(url); const req = body ? this.http.post(u, body, { observe: 'response', responseType: 'blob' }) : this.http.get(u, { observe: 'response', responseType: 'blob' }); return req.pipe(tap(t => { const filename = t.headers.get('content-disposition') ?.split(';')[1] .split('filename')[1] .split('=')[1] .trim(); if (t.body) saveAs(t.body, filename); })); } } HttpService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: HttpService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigurationService }], target: i0.ɵɵFactoryTarget.Injectable }); HttpService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: HttpService, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: HttpService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.ConfigurationService }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2FyZGJvYXJkYm94L25neC1ib3gvc3JjL2xpYi9zZXJ2aWNlcy9odHRwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7O0FBSS9ELE1BQU0sT0FBTyxXQUFXO0lBRXBCLFlBQ1csSUFBZ0IsRUFDaEIsTUFBNEI7UUFENUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFzQjtJQUNuQyxDQUFDO0lBRUwsUUFBUSxDQUFDLEdBQVcsRUFBRSxRQUFnQixVQUFVLEVBQUUsT0FBZ0I7UUFDOUQsSUFBSSxJQUFJLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkMsSUFBSSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksZUFBZSxJQUFJLFVBQVUsS0FBSyxFQUFFLENBQUM7UUFFMUUsSUFBSSxPQUFPO1lBQUUsR0FBRyxJQUFJLFlBQVksa0JBQWtCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUU5RCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBVztRQUNqQixJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlCLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQUUsT0FBTyxHQUFHLENBQUM7UUFFOUMsSUFBSSxHQUFHLENBQUMsVUFB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R0EzRVEsV0FBVzs0R0FBWCxXQUFXLGNBREUsTUFBTTsyRkFDbkIsV0FBVztrQkFEdkIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUmVzcG9uc2UgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIHRhcCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IHNhdmVBcyB9IGZyb20gXCJmaWxlLXNhdmVyXCI7XHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4vY29uZmlnLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUnhqc0h0dHBSZXNwIH0gZnJvbSAnLi9oZWxwZXJzL3J4anMtaHR0cC1yZXNwLmhlbHBlcic7XHJcbmltcG9ydCB7IEh0dHBPcHRpb25zIH0gZnJvbSAnLi9oZWxwZXJzL2h0dHAtb3B0aW9ucy5oZWxwZXInO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEh0dHBTZXJ2aWNlIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICBwdWJsaWMgY29uZmlnOiBDb25maWd1cmF0aW9uU2VydmljZVxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBmYWxsYmFjayh1cmw6IHN0cmluZywgZ3JvdXA6IHN0cmluZyA9ICdmYWxsYmFjaycsIHJlZmVyZXI/OiBzdHJpbmcpIHtcclxuICAgICAgICB2YXIgcGF0aCA9IGVuY29kZVVSSUNvbXBvbmVudCh1cmwpO1xyXG4gICAgICAgIGxldCB1cmkgPSBgJHt0aGlzLmNvbmZpZy5jb3JzRmFsbGJhY2t9L3Byb3h5P3BhdGg9JHtwYXRofSZncm91cD0ke2dyb3VwfWA7XHJcblxyXG4gICAgICAgIGlmIChyZWZlcmVyKSB1cmkgKz0gYCZyZWZlcmVyPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHJlZmVyZXIpfWA7XHJcblxyXG4gICAgICAgIHJldHVybiB1cmk7XHJcbiAgICB9XHJcblxyXG4gICAgZm9ybWF0VXJsKHVybDogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKHVybC5pbmRleE9mKCdodHRwczovLycpICE9PSAtMSB8fFxyXG4gICAgICAgICAgICB1cmwuaW5kZXhPZignaHR0cDovLycpICE9PSAtMSkgcmV0dXJuIHVybDtcclxuXHJcbiAgICAgICAgaWYgKHVybC5zdGFydHNXaXRoKCcvJykpXHJcbiAgICAgICAgICAgIHVybCA9IHVybC5zdWJzdHJpbmcoMSk7XHJcblxyXG4gICAgICAgIHJldHVybiBgJHt0aGlzLmNvbmZpZy5hcGlVcmx9LyR7dXJsfWA7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0PFQ+KHVybDogc3RyaW5nLCBvcHRpb25zPzogSHR0cE9wdGlvbnMpIHtcclxuICAgICAgICBsZXQgcmVxID0gdGhpcy5odHRwLmdldDxUPihcclxuICAgICAgICAgICAgdGhpcy5mb3JtYXRVcmwodXJsKSxcclxuICAgICAgICAgICAgb3B0aW9uc1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBSeGpzSHR0cFJlc3A8VD4ocmVxLCB1cmwsIHRoaXMuY29uZmlnLmlzUHJvZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcG9zdDxUPih1cmw6IHN0cmluZywgYm9keTogYW55LCBvcHRpb25zPzogSHR0cE9wdGlvbnMpIHtcclxuICAgICAgICBsZXQgcmVxID0gdGhpcy5odHRwLnBvc3Q8VD4oXHJcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0VXJsKHVybCksXHJcbiAgICAgICAgICAgIGJvZHksXHJcbiAgICAgICAgICAgIG9wdGlvbnNcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBuZXcgUnhqc0h0dHBSZXNwPFQ+KHJlcSwgdXJsLCB0aGlzLmNvbmZpZy5pc1Byb2QpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1dDxUPih1cmw6IHN0cmluZywgYm9keTogYW55LCBvcHRpb25zPzogSHR0cE9wdGlvbnMpIHtcclxuICAgICAgICBsZXQgcmVxID0gdGhpcy5odHRwLnB1dDxUPihcclxuICAgICAgICAgICAgdGhpcy5mb3JtYXRVcmwodXJsKSxcclxuICAgICAgICAgICAgYm9keSxcclxuICAgICAgICAgICAgb3B0aW9uc1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBSeGpzSHR0cFJlc3A8VD4ocmVxLCB1cmwsIHRoaXMuY29uZmlnLmlzUHJvZCk7XHJcbiAgICB9XHJcblxyXG4gICAgZGVsZXRlPFQ+KHVybDogc3RyaW5nLCBvcHRpb25zPzogSHR0cE9wdGlvbnMpIHtcclxuICAgICAgICBsZXQgcmVxID0gdGhpcy5odHRwLmRlbGV0ZTxUPih0aGlzLmZvcm1hdFVybCh1cmwpLCBvcHRpb25zKTtcclxuICAgICAgICByZXR1cm4gbmV3IFJ4anNIdHRwUmVzcDxUPihyZXEsIHVybCwgdGhpcy5jb25maWcuaXNQcm9kKTtcclxuICAgIH1cclxuXHJcbiAgICBkb3dubG9hZCh1cmw6IHN0cmluZyk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEJsb2I+PjtcclxuICAgIGRvd25sb2FkKHVybDogc3RyaW5nLCBib2R5OiBhbnkpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxCbG9iPj47XHJcbiAgICBkb3dubG9hZCh1cmw6IHN0cmluZywgYm9keT86IGFueSkge1xyXG4gICAgICAgIGNvbnN0IHUgPSB0aGlzLmZvcm1hdFVybCh1cmwpO1xyXG4gICAgICAgIGNvbnN0IHJlcSA9IGJvZHkgPyBcclxuICAgICAgICAgICAgdGhpcy5odHRwLnBvc3QodSwgYm9keSwgeyBvYnNlcnZlOiAncmVzcG9uc2UnLCByZXNwb25zZVR5cGU6ICdibG9iJyB9KSA6IFxyXG4gICAgICAgICAgICB0aGlzLmh0dHAuZ2V0KHUsIHsgb2JzZXJ2ZTogJ3Jlc3BvbnNlJywgcmVzcG9uc2VUeXBlOiAnYmxvYicgfSk7XHJcbiAgICAgICAgcmV0dXJuIHJlcS5waXBlKFxyXG4gICAgICAgICAgICB0YXAodCA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlbmFtZSA9IHQuaGVhZGVycy5nZXQoJ2NvbnRlbnQtZGlzcG9zaXRpb24nKVxyXG4gICAgICAgICAgICAgICAgICAgID8uc3BsaXQoJzsnKVsxXVxyXG4gICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnZmlsZW5hbWUnKVsxXVxyXG4gICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnPScpWzFdXHJcbiAgICAgICAgICAgICAgICAgICAgLnRyaW0oKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAodC5ib2R5KSBzYXZlQXModC5ib2R5LCBmaWxlbmFtZSk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgfVxyXG59Il19