@von-development-studio/angular-rest-service 1.0.7 → 2.0.0-SNAPSHOT
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/model/von-error-response.model.mjs +2 -0
- package/esm2020/lib/model/von-error-rest-interceptor.model.mjs +2 -0
- package/esm2020/lib/model/von-http-options.model.mjs +2 -0
- package/esm2020/lib/model/von-page-response.model.mjs +2 -0
- package/esm2020/lib/model/von-rest-definition.type.mjs +2 -0
- package/esm2020/lib/von-rest-interceptor.service.mjs +62 -0
- package/esm2020/lib/von-rest.service.mjs +97 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +2 -2
- package/{esm2015/von-development-studio-angular-rest-service.js → esm2020/von-development-studio-angular-rest-service.mjs} +1 -1
- package/fesm2015/von-development-studio-angular-rest-service.mjs +160 -0
- package/fesm2015/von-development-studio-angular-rest-service.mjs.map +1 -0
- package/{fesm2015/von-development-studio-angular-rest-service.js → fesm2020/von-development-studio-angular-rest-service.mjs} +52 -45
- package/fesm2020/von-development-studio-angular-rest-service.mjs.map +1 -0
- package/lib/model/von-error-response.model.d.ts +0 -0
- package/lib/model/von-error-rest-interceptor.model.d.ts +0 -0
- package/lib/model/von-http-options.model.d.ts +0 -0
- package/lib/model/von-page-response.model.d.ts +0 -0
- package/lib/model/von-rest-definition.type.d.ts +25 -0
- package/lib/von-rest-interceptor.service.d.ts +0 -0
- package/lib/von-rest.service.d.ts +14 -16
- package/package.json +24 -12
- package/public-api.d.ts +1 -1
- package/von-development-studio-angular-rest-service.d.ts +1 -0
- package/CHANGELOG.md +0 -7
- package/bundles/von-development-studio-angular-rest-service.umd.js +0 -169
- package/bundles/von-development-studio-angular-rest-service.umd.js.map +0 -1
- package/bundles/von-development-studio-angular-rest-service.umd.min.js +0 -2
- package/bundles/von-development-studio-angular-rest-service.umd.min.js.map +0 -1
- package/esm2015/lib/model/von-error-response.model.js +0 -2
- package/esm2015/lib/model/von-error-rest-interceptor.model.js +0 -2
- package/esm2015/lib/model/von-http-options.model.js +0 -2
- package/esm2015/lib/model/von-page-response.model.js +0 -2
- package/esm2015/lib/von-rest-interceptor.service.js +0 -62
- package/esm2015/lib/von-rest.service.js +0 -90
- package/fesm2015/von-development-studio-angular-rest-service.js.map +0 -1
- package/von-development-studio-angular-rest-service.metadata.json +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9uLWVycm9yLXJlc3BvbnNlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1yZXN0LXNlcnZpY2Uvc3JjL2xpYi9tb2RlbC92b24tZXJyb3ItcmVzcG9uc2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVm9uRXJyb3JSZXNwb25zZU1vZGVsIHtcbiAgY29kZT86IHN0cmluZyB8IG51bGw7XG4gIG1lc3NhZ2U/OiBzdHJpbmcgfCBudWxsO1xuICBwYXlsb2FkPzogYW55IHwgbnVsbDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9uLWVycm9yLXJlc3QtaW50ZXJjZXB0b3IubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXJlc3Qtc2VydmljZS9zcmMvbGliL21vZGVsL3Zvbi1lcnJvci1yZXN0LWludGVyY2VwdG9yLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFZvbkVycm9yUmVzdEludGVyY2VwdG9yTW9kZWwge1xuICBzdGF0dXM6IG51bWJlcjtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBib2R5PzogYW55O1xufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9uLWh0dHAtb3B0aW9ucy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItcmVzdC1zZXJ2aWNlL3NyYy9saWIvbW9kZWwvdm9uLWh0dHAtb3B0aW9ucy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVm9uSHR0cE9wdGlvbnNNb2RlbCB7XG4gIGhlYWRlcnM/OiBIdHRwSGVhZGVycyB8IHtcbiAgICBbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgfTtcbiAgb2JzZXJ2ZT86ICdib2R5JztcbiAgcGFyYW1zPzogSHR0cFBhcmFtcyB8IHtcbiAgICBbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xuICB9O1xuICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW47XG4gIHJlc3BvbnNlVHlwZT86ICdqc29uJztcbiAgd2l0aENyZWRlbnRpYWxzPzogYm9vbGVhbjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9uLXBhZ2UtcmVzcG9uc2UubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXJlc3Qtc2VydmljZS9zcmMvbGliL21vZGVsL3Zvbi1wYWdlLXJlc3BvbnNlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFZvblBhZ2VSZXNwb25zZU1vZGVsPFQ+IHtcbiAgY29udGVudDogVFtdO1xuICBsYXN0OiBib29sZWFuO1xuICB0b3RhbFBhZ2VzOiBudW1iZXI7XG4gIHRvdGFsRWxlbWVudHM6IG51bWJlcjtcbiAgc2l6ZTogbnVtYmVyO1xuICBudW1iZXJPZkVsZW1lbnRzOiBudW1iZXI7XG4gIG51bWJlcjogbnVtYmVyO1xufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9uLXJlc3QtZGVmaW5pdGlvbi50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1yZXN0LXNlcnZpY2Uvc3JjL2xpYi9tb2RlbC92b24tcmVzdC1kZWZpbml0aW9uLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgR2VuZXJpY1BhcmFtcyB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IHR5cGUgSGVhZGVyUGFyYW1zID0ge1xuICBjb250ZW50VHlwZT86IHN0cmluZztcbiAgYWNjZXB0Pzogc3RyaW5nO1xufSAmIHsgcGFyYW1zPzogR2VuZXJpY1BhcmFtcyB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VQYXJhbXMge1xuICB1cmw6IHN0cmluZztcbiAgdXJsUGFyYW1zPzogR2VuZXJpY1BhcmFtcztcbiAgcGFyYW1zPzogSGVhZGVyUGFyYW1zO1xufVxuXG5leHBvcnQgdHlwZSBHZXRQYXJhbXMgPSBCYXNlUGFyYW1zO1xuXG5leHBvcnQgdHlwZSBEZWxldGVQYXJhbXMgPSBCYXNlUGFyYW1zO1xuXG5leHBvcnQgdHlwZSBQb3N0UGFyYW1zPEIgPSBhbnkgfCBGb3JtRGF0YT4gPSBCYXNlUGFyYW1zICYgeyBib2R5OiBCIH07XG5cbmV4cG9ydCB0eXBlIFB1dFBhcmFtczxCID0gYW55IHwgRm9ybURhdGE+ID0gQmFzZVBhcmFtcyAmIHsgYm9keTogQiB9O1xuXG5leHBvcnQgdHlwZSBQYXRjaFBhcmFtczxCID0gYW55IHwgRm9ybURhdGE+ID0gQmFzZVBhcmFtcyAmIHsgYm9keTogQiB9O1xuIl19
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { HttpResponse } from '@angular/common/http';
|
|
2
|
+
import { throwError } from 'rxjs';
|
|
3
|
+
import { catchError, map } from 'rxjs/operators';
|
|
4
|
+
export class VonRestInterceptorService {
|
|
5
|
+
constructor(router) {
|
|
6
|
+
this.router = router;
|
|
7
|
+
this.consoleDebug = false;
|
|
8
|
+
this.errorResponseUnknown = 'Unknown Error';
|
|
9
|
+
this.errorResponseForbidden = 'Forbidden Error';
|
|
10
|
+
this.urlWhoAmI = 'api/who-am-i';
|
|
11
|
+
this.redirectOn403 = true;
|
|
12
|
+
this.redirect403Url = ['403'];
|
|
13
|
+
this.postHttpRequest = () => { };
|
|
14
|
+
this.mapEvent = (event) => {
|
|
15
|
+
if (event instanceof HttpResponse) {
|
|
16
|
+
if (event.status === 200 || event.status === 204) {
|
|
17
|
+
this.postHttpRequest();
|
|
18
|
+
return event;
|
|
19
|
+
}
|
|
20
|
+
if (event.status !== 200) {
|
|
21
|
+
const error = {
|
|
22
|
+
status: event.status,
|
|
23
|
+
message: event.statusText,
|
|
24
|
+
body: event.body,
|
|
25
|
+
};
|
|
26
|
+
if (this.consoleDebug) {
|
|
27
|
+
console.error('[ErrorWS]: ', error);
|
|
28
|
+
}
|
|
29
|
+
throw error;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return event;
|
|
33
|
+
};
|
|
34
|
+
this.catchError = (errorResponse) => {
|
|
35
|
+
if (this.consoleDebug) {
|
|
36
|
+
console.error('[Fatal]: ', errorResponse);
|
|
37
|
+
}
|
|
38
|
+
const error = {
|
|
39
|
+
status: errorResponse.status,
|
|
40
|
+
message: '',
|
|
41
|
+
body: errorResponse.error || {},
|
|
42
|
+
};
|
|
43
|
+
if (errorResponse.status === 0) {
|
|
44
|
+
error.message = this.errorResponseUnknown;
|
|
45
|
+
}
|
|
46
|
+
if (errorResponse.status === 401) {
|
|
47
|
+
error.message = errorResponse.error ? errorResponse.error : this.errorResponseForbidden;
|
|
48
|
+
}
|
|
49
|
+
if (this.redirectOn403) {
|
|
50
|
+
if (errorResponse.status === 403 || (errorResponse.url && errorResponse.url.indexOf(this.urlWhoAmI) > -1)) {
|
|
51
|
+
this.router.navigate(this.redirect403Url);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
this.postHttpRequest();
|
|
55
|
+
return throwError(error);
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
intercept(request, next) {
|
|
59
|
+
return next.handle(request).pipe(map(this.mapEvent), catchError(this.catchError));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9uLXJlc3QtaW50ZXJjZXB0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItcmVzdC1zZXJ2aWNlL3NyYy9saWIvdm9uLXJlc3QtaW50ZXJjZXB0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTJFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTdILE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdqRCxNQUFNLE9BQWdCLHlCQUF5QjtJQVE3QyxZQUFzQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVAxQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQix5QkFBb0IsR0FBRyxlQUFlLENBQUM7UUFDdkMsMkJBQXNCLEdBQUcsaUJBQWlCLENBQUM7UUFDM0MsY0FBUyxHQUFHLGNBQWMsQ0FBQztRQUMzQixrQkFBYSxHQUFHLElBQUksQ0FBQztRQUNyQixtQkFBYyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFRekIsb0JBQWUsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFFM0IsYUFBUSxHQUFHLENBQUMsS0FBcUIsRUFBRSxFQUFFO1lBQzdDLElBQUksS0FBSyxZQUFZLFlBQVksRUFBRTtnQkFDakMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTtvQkFDaEQsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO29CQUN2QixPQUFPLEtBQUssQ0FBQztpQkFDZDtnQkFDRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFO29CQUN4QixNQUFNLEtBQUssR0FBaUM7d0JBQzFDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTt3QkFDcEIsT0FBTyxFQUFFLEtBQUssQ0FBQyxVQUFVO3dCQUN6QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7cUJBQ2pCLENBQUM7b0JBQ0YsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO3dCQUNyQixPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztxQkFDckM7b0JBQ0QsTUFBTSxLQUFLLENBQUM7aUJBQ2I7YUFDRjtZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDO1FBRVEsZUFBVSxHQUFHLENBQUMsYUFBZ0MsRUFBRSxFQUFFO1lBQzFELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDckIsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUM7YUFDM0M7WUFDRCxNQUFNLEtBQUssR0FBaUM7Z0JBQzFDLE1BQU0sRUFBRSxhQUFhLENBQUMsTUFBTTtnQkFDNUIsT0FBTyxFQUFFLEVBQUU7Z0JBQ1gsSUFBSSxFQUFFLGFBQWEsQ0FBQyxLQUFLLElBQUksRUFBRTthQUNoQyxDQUFDO1lBQ0YsSUFBSSxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDOUIsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7YUFDM0M7WUFDRCxJQUFJLGFBQWEsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFO2dCQUNoQyxLQUFLLENBQUMsT0FBTyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQzthQUN6RjtZQUNELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDdEIsSUFBSSxhQUFhLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ3pHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztpQkFDM0M7YUFDRjtZQUNELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2QixPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUM7SUFuRHFDLENBQUM7SUFFeEMsU0FBUyxDQUFDLE9BQXlCLEVBQUUsSUFBaUI7UUFDcEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO0NBZ0RGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBWb25FcnJvclJlc3RJbnRlcmNlcHRvck1vZGVsIH0gZnJvbSAnLi9tb2RlbC92b24tZXJyb3ItcmVzdC1pbnRlcmNlcHRvci5tb2RlbCc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBWb25SZXN0SW50ZXJjZXB0b3JTZXJ2aWNlIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgcHJvdGVjdGVkIGNvbnNvbGVEZWJ1ZyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgZXJyb3JSZXNwb25zZVVua25vd24gPSAnVW5rbm93biBFcnJvcic7XG4gIHByb3RlY3RlZCBlcnJvclJlc3BvbnNlRm9yYmlkZGVuID0gJ0ZvcmJpZGRlbiBFcnJvcic7XG4gIHByb3RlY3RlZCB1cmxXaG9BbUkgPSAnYXBpL3doby1hbS1pJztcbiAgcHJvdGVjdGVkIHJlZGlyZWN0T240MDMgPSB0cnVlO1xuICBwcm90ZWN0ZWQgcmVkaXJlY3Q0MDNVcmwgPSBbJzQwMyddO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlcikge31cblxuICBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpLnBpcGUobWFwKHRoaXMubWFwRXZlbnQpLCBjYXRjaEVycm9yKHRoaXMuY2F0Y2hFcnJvcikpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBvc3RIdHRwUmVxdWVzdCA9ICgpID0+IHt9O1xuXG4gIHByb3RlY3RlZCBtYXBFdmVudCA9IChldmVudDogSHR0cEV2ZW50PGFueT4pID0+IHtcbiAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpIHtcbiAgICAgIGlmIChldmVudC5zdGF0dXMgPT09IDIwMCB8fCBldmVudC5zdGF0dXMgPT09IDIwNCkge1xuICAgICAgICB0aGlzLnBvc3RIdHRwUmVxdWVzdCgpO1xuICAgICAgICByZXR1cm4gZXZlbnQ7XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgY29uc3QgZXJyb3I6IFZvbkVycm9yUmVzdEludGVyY2VwdG9yTW9kZWwgPSB7XG4gICAgICAgICAgc3RhdHVzOiBldmVudC5zdGF0dXMsXG4gICAgICAgICAgbWVzc2FnZTogZXZlbnQuc3RhdHVzVGV4dCxcbiAgICAgICAgICBib2R5OiBldmVudC5ib2R5LFxuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5jb25zb2xlRGVidWcpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdbRXJyb3JXU106ICcsIGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGV2ZW50O1xuICB9O1xuXG4gIHByb3RlY3RlZCBjYXRjaEVycm9yID0gKGVycm9yUmVzcG9uc2U6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XG4gICAgaWYgKHRoaXMuY29uc29sZURlYnVnKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdbRmF0YWxdOiAnLCBlcnJvclJlc3BvbnNlKTtcbiAgICB9XG4gICAgY29uc3QgZXJyb3I6IFZvbkVycm9yUmVzdEludGVyY2VwdG9yTW9kZWwgPSB7XG4gICAgICBzdGF0dXM6IGVycm9yUmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgbWVzc2FnZTogJycsXG4gICAgICBib2R5OiBlcnJvclJlc3BvbnNlLmVycm9yIHx8IHt9LFxuICAgIH07XG4gICAgaWYgKGVycm9yUmVzcG9uc2Uuc3RhdHVzID09PSAwKSB7XG4gICAgICBlcnJvci5tZXNzYWdlID0gdGhpcy5lcnJvclJlc3BvbnNlVW5rbm93bjtcbiAgICB9XG4gICAgaWYgKGVycm9yUmVzcG9uc2Uuc3RhdHVzID09PSA0MDEpIHtcbiAgICAgIGVycm9yLm1lc3NhZ2UgPSBlcnJvclJlc3BvbnNlLmVycm9yID8gZXJyb3JSZXNwb25zZS5lcnJvciA6IHRoaXMuZXJyb3JSZXNwb25zZUZvcmJpZGRlbjtcbiAgICB9XG4gICAgaWYgKHRoaXMucmVkaXJlY3RPbjQwMykge1xuICAgICAgaWYgKGVycm9yUmVzcG9uc2Uuc3RhdHVzID09PSA0MDMgfHwgKGVycm9yUmVzcG9uc2UudXJsICYmIGVycm9yUmVzcG9uc2UudXJsLmluZGV4T2YodGhpcy51cmxXaG9BbUkpID4gLTEpKSB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKHRoaXMucmVkaXJlY3Q0MDNVcmwpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnBvc3RIdHRwUmVxdWVzdCgpO1xuICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { HttpHeaders } from '@angular/common/http';
|
|
2
|
+
import { map, share, take } from 'rxjs/operators';
|
|
3
|
+
export class VonRestService {
|
|
4
|
+
constructor(http, sanitizer) {
|
|
5
|
+
this.http = http;
|
|
6
|
+
this.sanitizer = sanitizer;
|
|
7
|
+
this.setHeaders = (headerParams) => {
|
|
8
|
+
return new HttpHeaders({
|
|
9
|
+
'Content-Type': headerParams?.contentType ?? 'application/json',
|
|
10
|
+
Accept: headerParams?.accept ?? 'application/json',
|
|
11
|
+
'Access-Control-Allow-Origin': '*',
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
this.setOptions = (headerParams) => {
|
|
15
|
+
return {
|
|
16
|
+
headers: this.setHeaders(headerParams),
|
|
17
|
+
params: headerParams?.params,
|
|
18
|
+
withCredentials: true,
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
this.setOptionsForFile = (headerParams) => {
|
|
22
|
+
return {
|
|
23
|
+
...this.setOptions(headerParams?.params),
|
|
24
|
+
headers: new HttpHeaders({
|
|
25
|
+
Accept: headerParams?.accept ?? 'application/json',
|
|
26
|
+
'Access-Control-Allow-Origin': '*',
|
|
27
|
+
}),
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
this.setUrlParams = (url, params) => {
|
|
31
|
+
if (params != null) {
|
|
32
|
+
for (const p in params) {
|
|
33
|
+
if (p != null) {
|
|
34
|
+
url = url.replace(`{${p}}`, params[p]);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return url;
|
|
39
|
+
};
|
|
40
|
+
this.authenticate = (url, username, password) => {
|
|
41
|
+
const authorization = btoa(`${username}:${password}`);
|
|
42
|
+
const headers = new HttpHeaders({
|
|
43
|
+
authorization: `Basic ${authorization}`,
|
|
44
|
+
});
|
|
45
|
+
return this.http
|
|
46
|
+
.get(url, {
|
|
47
|
+
headers,
|
|
48
|
+
withCredentials: true,
|
|
49
|
+
})
|
|
50
|
+
.pipe(take(1), share());
|
|
51
|
+
};
|
|
52
|
+
this.get = ({ url, urlParams, params, }) => {
|
|
53
|
+
url = this.setUrlParams(url, urlParams);
|
|
54
|
+
return this.http.get(url, this.setOptions(params));
|
|
55
|
+
};
|
|
56
|
+
this.file = ({ url, urlParams, params, }) => {
|
|
57
|
+
url = this.setUrlParams(url, urlParams);
|
|
58
|
+
return this.http
|
|
59
|
+
.get(url, {
|
|
60
|
+
...this.setOptionsForFile(params),
|
|
61
|
+
responseType: 'blob',
|
|
62
|
+
})
|
|
63
|
+
.pipe(map((res) => {
|
|
64
|
+
const fileBlob = new Blob([res], { type: params?.contentType });
|
|
65
|
+
const objUrl = URL.createObjectURL(fileBlob);
|
|
66
|
+
const sanitized = this.sanitizer.bypassSecurityTrustResourceUrl(objUrl);
|
|
67
|
+
return sanitized;
|
|
68
|
+
}));
|
|
69
|
+
};
|
|
70
|
+
this.delete = ({ url, urlParams, params, }) => {
|
|
71
|
+
url = this.setUrlParams(url, urlParams);
|
|
72
|
+
return this.http.delete(url, this.setOptions(params));
|
|
73
|
+
};
|
|
74
|
+
this.post = ({ url, body, urlParams, params, }) => {
|
|
75
|
+
url = this.setUrlParams(url, urlParams);
|
|
76
|
+
let options = body instanceof FormData
|
|
77
|
+
? this.setOptionsForFile(params)
|
|
78
|
+
: this.setOptions(params);
|
|
79
|
+
return this.http.post(url, body, options);
|
|
80
|
+
};
|
|
81
|
+
this.put = ({ url, body, urlParams, params, }) => {
|
|
82
|
+
url = this.setUrlParams(url, urlParams);
|
|
83
|
+
let options = body instanceof FormData
|
|
84
|
+
? this.setOptionsForFile(params)
|
|
85
|
+
: this.setOptions(params);
|
|
86
|
+
return this.http.put(url, body, options);
|
|
87
|
+
};
|
|
88
|
+
this.patch = ({ url, body, urlParams, params, }) => {
|
|
89
|
+
url = this.setUrlParams(url, urlParams);
|
|
90
|
+
let options = body instanceof FormData
|
|
91
|
+
? this.setOptionsForFile(params)
|
|
92
|
+
: this.setOptions(params);
|
|
93
|
+
return this.http.patch(url, body, options);
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9uLXJlc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItcmVzdC1zZXJ2aWNlL3NyYy9saWIvdm9uLXJlc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHL0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFXbEQsTUFBTSxPQUFnQixjQUFjO0lBQ2xDLFlBQXNCLElBQWdCLEVBQVksU0FBdUI7UUFBbkQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFZLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFFL0QsZUFBVSxHQUFHLENBQUMsWUFBMkIsRUFBZSxFQUFFO1lBQ2xFLE9BQU8sSUFBSSxXQUFXLENBQUM7Z0JBQ3JCLGNBQWMsRUFBRSxZQUFZLEVBQUUsV0FBVyxJQUFJLGtCQUFrQjtnQkFDL0QsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLElBQUksa0JBQWtCO2dCQUNsRCw2QkFBNkIsRUFBRSxHQUFHO2FBQ25DLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVRLGVBQVUsR0FBRyxDQUFDLFlBQTJCLEVBQXVCLEVBQUU7WUFDMUUsT0FBTztnQkFDTCxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7Z0JBQ3RDLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTTtnQkFDNUIsZUFBZSxFQUFFLElBQUk7YUFDdEIsQ0FBQztRQUNKLENBQUMsQ0FBQztRQUVRLHNCQUFpQixHQUFHLENBQzVCLFlBQTJCLEVBQ04sRUFBRTtZQUN2QixPQUFPO2dCQUNMLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDO2dCQUN4QyxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUM7b0JBQ3ZCLE1BQU0sRUFB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LElBQUksT0FBTyxHQUNULElBQUksWUFBWSxRQUFRO2dCQUN0QixDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztnQkFDaEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELENBQUMsQ0FBQztJQTFJMEUsQ0FBQztDQTJJOUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVJlc291cmNlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHNoYXJlLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVm9uSHR0cE9wdGlvbnNNb2RlbCB9IGZyb20gJy4vbW9kZWwvdm9uLWh0dHAtb3B0aW9ucy5tb2RlbCc7XG5pbXBvcnQge1xuICBEZWxldGVQYXJhbXMsXG4gIEdlbmVyaWNQYXJhbXMsXG4gIEdldFBhcmFtcyxcbiAgSGVhZGVyUGFyYW1zLFxuICBQb3N0UGFyYW1zLFxuICBQdXRQYXJhbXMsXG59IGZyb20gJy4vbW9kZWwvdm9uLXJlc3QtZGVmaW5pdGlvbi50eXBlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFZvblJlc3RTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsIHByb3RlY3RlZCBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cblxuICBwcm90ZWN0ZWQgc2V0SGVhZGVycyA9IChoZWFkZXJQYXJhbXM/OiBIZWFkZXJQYXJhbXMpOiBIdHRwSGVhZGVycyA9PiB7XG4gICAgcmV0dXJuIG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAnQ29udGVudC1UeXBlJzogaGVhZGVyUGFyYW1zPy5jb250ZW50VHlwZSA/PyAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICBBY2NlcHQ6IGhlYWRlclBhcmFtcz8uYWNjZXB0ID8/ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nOiAnKicsXG4gICAgfSk7XG4gIH07XG5cbiAgcHJvdGVjdGVkIHNldE9wdGlvbnMgPSAoaGVhZGVyUGFyYW1zPzogSGVhZGVyUGFyYW1zKTogVm9uSHR0cE9wdGlvbnNNb2RlbCA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhlYWRlcnM6IHRoaXMuc2V0SGVhZGVycyhoZWFkZXJQYXJhbXMpLFxuICAgICAgcGFyYW1zOiBoZWFkZXJQYXJhbXM/LnBhcmFtcyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9O1xuICB9O1xuXG4gIHByb3RlY3RlZCBzZXRPcHRpb25zRm9yRmlsZSA9IChcbiAgICBoZWFkZXJQYXJhbXM/OiBIZWFkZXJQYXJhbXNcbiAgKTogVm9uSHR0cE9wdGlvbnNNb2RlbCA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMuc2V0T3B0aW9ucyhoZWFkZXJQYXJhbXM/LnBhcmFtcyksXG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICBBY2NlcHQ6IGhlYWRlclBhcmFtcz8uYWNjZXB0ID8/ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbic6ICcqJyxcbiAgICAgIH0pLFxuICAgIH07XG4gIH07XG5cbiAgcHJvdGVjdGVkIHNldFVybFBhcmFtcyA9ICh1cmw6IHN0cmluZywgcGFyYW1zPzogR2VuZXJpY1BhcmFtcykgPT4ge1xuICAgIGlmIChwYXJhbXMgIT0gbnVsbCkge1xuICAgICAgZm9yIChjb25zdCBwIGluIHBhcmFtcykge1xuICAgICAgICBpZiAocCAhPSBudWxsKSB7XG4gICAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoYHske3B9fWAsIHBhcmFtc1twXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVybDtcbiAgfTtcblxuICBwcm90ZWN0ZWQgYXV0aGVudGljYXRlID0gKFxuICAgIHVybDogc3RyaW5nLFxuICAgIHVzZXJuYW1lOiBzdHJpbmcsXG4gICAgcGFzc3dvcmQ6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xuICAgIGNvbnN0IGF1dGhvcml6YXRpb24gPSBidG9hKGAke3VzZXJuYW1lfToke3Bhc3N3b3JkfWApO1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgYXV0aG9yaXphdGlvbjogYEJhc2ljICR7YXV0aG9yaXphdGlvbn1gLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQodXJsLCB7XG4gICAgICAgIGhlYWRlcnMsXG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICAucGlwZSh0YWtlKDEpLCBzaGFyZSgpKTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgZ2V0ID0gPFIgPSBhbnk+KHtcbiAgICB1cmwsXG4gICAgdXJsUGFyYW1zLFxuICAgIHBhcmFtcyxcbiAgfTogR2V0UGFyYW1zKTogT2JzZXJ2YWJsZTxSPiA9PiB7XG4gICAgdXJsID0gdGhpcy5zZXRVcmxQYXJhbXModXJsLCB1cmxQYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFI+KHVybCwgdGhpcy5zZXRPcHRpb25zKHBhcmFtcykpO1xuICB9O1xuXG4gIHByb3RlY3RlZCBmaWxlID0gKHtcbiAgICB1cmwsXG4gICAgdXJsUGFyYW1zLFxuICAgIHBhcmFtcyxcbiAgfTogR2V0UGFyYW1zKTogT2JzZXJ2YWJsZTxTYWZlUmVzb3VyY2VVcmw+ID0+IHtcbiAgICB1cmwgPSB0aGlzLnNldFVybFBhcmFtcyh1cmwsIHVybFBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldCh1cmwsIHtcbiAgICAgICAgLi4udGhpcy5zZXRPcHRpb25zRm9yRmlsZShwYXJhbXMpLFxuICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJyBhcyAnanNvbicsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCBmaWxlQmxvYiA9IG5ldyBCbG9iKFtyZXNdLCB7IHR5cGU6IHBhcmFtcz8uY29udGVudFR5cGUgfSk7XG4gICAgICAgICAgY29uc3Qgb2JqVXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlQmxvYik7XG4gICAgICAgICAgY29uc3Qgc2FuaXRpemVkID1cbiAgICAgICAgICAgIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChvYmpVcmwpO1xuICAgICAgICAgIHJldHVybiBzYW5pdGl6ZWQ7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9O1xuXG4gIHByb3RlY3RlZCBkZWxldGUgPSA8UiA9IGFueT4oe1xuICAgIHVybCxcbiAgICB1cmxQYXJhbXMsXG4gICAgcGFyYW1zLFxuICB9OiBEZWxldGVQYXJhbXMpOiBPYnNlcnZhYmxlPFI+ID0+IHtcbiAgICB1cmwgPSB0aGlzLnNldFVybFBhcmFtcyh1cmwsIHVybFBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8Uj4odXJsLCB0aGlzLnNldE9wdGlvbnMocGFyYW1zKSk7XG4gIH07XG5cbiAgcHJvdGVjdGVkIHBvc3QgPSA8UiA9IGFueSwgQiA9IGFueSB8IEZvcm1EYXRhPih7XG4gICAgdXJsLFxuICAgIGJvZHksXG4gICAgdXJsUGFyYW1zLFxuICAgIHBhcmFtcyxcbiAgfTogUG9zdFBhcmFtczxCPik6IE9ic2VydmFibGU8Uj4gPT4ge1xuICAgIHVybCA9IHRoaXMuc2V0VXJsUGFyYW1zKHVybCwgdXJsUGFyYW1zKTtcbiAgICBsZXQgb3B0aW9ucyA9XG4gICAgICBib2R5IGluc3RhbmNlb2YgRm9ybURhdGFcbiAgICAgICAgPyB0aGlzLnNldE9wdGlvbnNGb3JGaWxlKHBhcmFtcylcbiAgICAgICAgOiB0aGlzLnNldE9wdGlvbnMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Uj4odXJsLCBib2R5LCBvcHRpb25zKTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgcHV0ID0gPFIgPSBhbnksIEIgPSBhbnkgfCBGb3JtRGF0YT4oe1xuICAgIHVybCxcbiAgICBib2R5LFxuICAgIHVybFBhcmFtcyxcbiAgICBwYXJhbXMsXG4gIH06IFB1dFBhcmFtczxCPik6IE9ic2VydmFibGU8Uj4gPT4ge1xuICAgIHVybCA9IHRoaXMuc2V0VXJsUGFyYW1zKHVybCwgdXJsUGFyYW1zKTtcbiAgICBsZXQgb3B0aW9ucyA9XG4gICAgICBib2R5IGluc3RhbmNlb2YgRm9ybURhdGFcbiAgICAgICAgPyB0aGlzLnNldE9wdGlvbnNGb3JGaWxlKHBhcmFtcylcbiAgICAgICAgOiB0aGlzLnNldE9wdGlvbnMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxSPih1cmwsIGJvZHksIG9wdGlvbnMpO1xuICB9O1xuXG4gIHByb3RlY3RlZCBwYXRjaCA9IDxSID0gYW55LCBCID0gYW55IHwgRm9ybURhdGE+KHtcbiAgICB1cmwsXG4gICAgYm9keSxcbiAgICB1cmxQYXJhbXMsXG4gICAgcGFyYW1zLFxuICB9OiBQdXRQYXJhbXM8Qj4pOiBPYnNlcnZhYmxlPFI+ID0+IHtcbiAgICB1cmwgPSB0aGlzLnNldFVybFBhcmFtcyh1cmwsIHVybFBhcmFtcyk7XG4gICAgbGV0IG9wdGlvbnMgPVxuICAgICAgYm9keSBpbnN0YW5jZW9mIEZvcm1EYXRhXG4gICAgICAgID8gdGhpcy5zZXRPcHRpb25zRm9yRmlsZShwYXJhbXMpXG4gICAgICAgIDogdGhpcy5zZXRPcHRpb25zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDxSPih1cmwsIGJvZHksIG9wdGlvbnMpO1xuICB9O1xufVxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from './lib/model/von-error-response.model';
|
|
2
2
|
export * from './lib/model/von-error-rest-interceptor.model';
|
|
3
3
|
export * from './lib/model/von-page-response.model';
|
|
4
|
-
export * from './lib/model/von-
|
|
4
|
+
export * from './lib/model/von-rest-definition.type';
|
|
5
5
|
export * from './lib/von-rest-interceptor.service';
|
|
6
6
|
export * from './lib/von-rest.service';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItcmVzdC1zZXJ2aWNlL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWwvdm9uLWVycm9yLXJlc3BvbnNlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL3Zvbi1lcnJvci1yZXN0LWludGVyY2VwdG9yLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL3Zvbi1wYWdlLXJlc3BvbnNlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL3Zvbi1yZXN0LWRlZmluaXRpb24udHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92b24tcmVzdC1pbnRlcmNlcHRvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Zvbi1yZXN0LnNlcnZpY2UnO1xuIl19
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
* Generated bundle index. Do not edit.
|
|
3
3
|
*/
|
|
4
4
|
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9uLWRldmVsb3BtZW50LXN0dWRpby1hbmd1bGFyLXJlc3Qtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItcmVzdC1zZXJ2aWNlL3NyYy92b24tZGV2ZWxvcG1lbnQtc3R1ZGlvLWFuZ3VsYXItcmVzdC1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { HttpResponse, HttpHeaders } from '@angular/common/http';
|
|
2
|
+
import { throwError } from 'rxjs';
|
|
3
|
+
import { map, catchError, take, share } from 'rxjs/operators';
|
|
4
|
+
|
|
5
|
+
class VonRestInterceptorService {
|
|
6
|
+
constructor(router) {
|
|
7
|
+
this.router = router;
|
|
8
|
+
this.consoleDebug = false;
|
|
9
|
+
this.errorResponseUnknown = 'Unknown Error';
|
|
10
|
+
this.errorResponseForbidden = 'Forbidden Error';
|
|
11
|
+
this.urlWhoAmI = 'api/who-am-i';
|
|
12
|
+
this.redirectOn403 = true;
|
|
13
|
+
this.redirect403Url = ['403'];
|
|
14
|
+
this.postHttpRequest = () => { };
|
|
15
|
+
this.mapEvent = (event) => {
|
|
16
|
+
if (event instanceof HttpResponse) {
|
|
17
|
+
if (event.status === 200 || event.status === 204) {
|
|
18
|
+
this.postHttpRequest();
|
|
19
|
+
return event;
|
|
20
|
+
}
|
|
21
|
+
if (event.status !== 200) {
|
|
22
|
+
const error = {
|
|
23
|
+
status: event.status,
|
|
24
|
+
message: event.statusText,
|
|
25
|
+
body: event.body,
|
|
26
|
+
};
|
|
27
|
+
if (this.consoleDebug) {
|
|
28
|
+
console.error('[ErrorWS]: ', error);
|
|
29
|
+
}
|
|
30
|
+
throw error;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return event;
|
|
34
|
+
};
|
|
35
|
+
this.catchError = (errorResponse) => {
|
|
36
|
+
if (this.consoleDebug) {
|
|
37
|
+
console.error('[Fatal]: ', errorResponse);
|
|
38
|
+
}
|
|
39
|
+
const error = {
|
|
40
|
+
status: errorResponse.status,
|
|
41
|
+
message: '',
|
|
42
|
+
body: errorResponse.error || {},
|
|
43
|
+
};
|
|
44
|
+
if (errorResponse.status === 0) {
|
|
45
|
+
error.message = this.errorResponseUnknown;
|
|
46
|
+
}
|
|
47
|
+
if (errorResponse.status === 401) {
|
|
48
|
+
error.message = errorResponse.error ? errorResponse.error : this.errorResponseForbidden;
|
|
49
|
+
}
|
|
50
|
+
if (this.redirectOn403) {
|
|
51
|
+
if (errorResponse.status === 403 || (errorResponse.url && errorResponse.url.indexOf(this.urlWhoAmI) > -1)) {
|
|
52
|
+
this.router.navigate(this.redirect403Url);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
this.postHttpRequest();
|
|
56
|
+
return throwError(error);
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
intercept(request, next) {
|
|
60
|
+
return next.handle(request).pipe(map(this.mapEvent), catchError(this.catchError));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
class VonRestService {
|
|
65
|
+
constructor(http, sanitizer) {
|
|
66
|
+
this.http = http;
|
|
67
|
+
this.sanitizer = sanitizer;
|
|
68
|
+
this.setHeaders = (headerParams) => {
|
|
69
|
+
var _a, _b;
|
|
70
|
+
return new HttpHeaders({
|
|
71
|
+
'Content-Type': (_a = headerParams === null || headerParams === void 0 ? void 0 : headerParams.contentType) !== null && _a !== void 0 ? _a : 'application/json',
|
|
72
|
+
Accept: (_b = headerParams === null || headerParams === void 0 ? void 0 : headerParams.accept) !== null && _b !== void 0 ? _b : 'application/json',
|
|
73
|
+
'Access-Control-Allow-Origin': '*',
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
this.setOptions = (headerParams) => {
|
|
77
|
+
return {
|
|
78
|
+
headers: this.setHeaders(headerParams),
|
|
79
|
+
params: headerParams === null || headerParams === void 0 ? void 0 : headerParams.params,
|
|
80
|
+
withCredentials: true,
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
this.setOptionsForFile = (headerParams) => {
|
|
84
|
+
var _a;
|
|
85
|
+
return Object.assign(Object.assign({}, this.setOptions(headerParams === null || headerParams === void 0 ? void 0 : headerParams.params)), { headers: new HttpHeaders({
|
|
86
|
+
Accept: (_a = headerParams === null || headerParams === void 0 ? void 0 : headerParams.accept) !== null && _a !== void 0 ? _a : 'application/json',
|
|
87
|
+
'Access-Control-Allow-Origin': '*',
|
|
88
|
+
}) });
|
|
89
|
+
};
|
|
90
|
+
this.setUrlParams = (url, params) => {
|
|
91
|
+
if (params != null) {
|
|
92
|
+
for (const p in params) {
|
|
93
|
+
if (p != null) {
|
|
94
|
+
url = url.replace(`{${p}}`, params[p]);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return url;
|
|
99
|
+
};
|
|
100
|
+
this.authenticate = (url, username, password) => {
|
|
101
|
+
const authorization = btoa(`${username}:${password}`);
|
|
102
|
+
const headers = new HttpHeaders({
|
|
103
|
+
authorization: `Basic ${authorization}`,
|
|
104
|
+
});
|
|
105
|
+
return this.http
|
|
106
|
+
.get(url, {
|
|
107
|
+
headers,
|
|
108
|
+
withCredentials: true,
|
|
109
|
+
})
|
|
110
|
+
.pipe(take(1), share());
|
|
111
|
+
};
|
|
112
|
+
this.get = ({ url, urlParams, params, }) => {
|
|
113
|
+
url = this.setUrlParams(url, urlParams);
|
|
114
|
+
return this.http.get(url, this.setOptions(params));
|
|
115
|
+
};
|
|
116
|
+
this.file = ({ url, urlParams, params, }) => {
|
|
117
|
+
url = this.setUrlParams(url, urlParams);
|
|
118
|
+
return this.http
|
|
119
|
+
.get(url, Object.assign(Object.assign({}, this.setOptionsForFile(params)), { responseType: 'blob' }))
|
|
120
|
+
.pipe(map((res) => {
|
|
121
|
+
const fileBlob = new Blob([res], { type: params === null || params === void 0 ? void 0 : params.contentType });
|
|
122
|
+
const objUrl = URL.createObjectURL(fileBlob);
|
|
123
|
+
const sanitized = this.sanitizer.bypassSecurityTrustResourceUrl(objUrl);
|
|
124
|
+
return sanitized;
|
|
125
|
+
}));
|
|
126
|
+
};
|
|
127
|
+
this.delete = ({ url, urlParams, params, }) => {
|
|
128
|
+
url = this.setUrlParams(url, urlParams);
|
|
129
|
+
return this.http.delete(url, this.setOptions(params));
|
|
130
|
+
};
|
|
131
|
+
this.post = ({ url, body, urlParams, params, }) => {
|
|
132
|
+
url = this.setUrlParams(url, urlParams);
|
|
133
|
+
let options = body instanceof FormData
|
|
134
|
+
? this.setOptionsForFile(params)
|
|
135
|
+
: this.setOptions(params);
|
|
136
|
+
return this.http.post(url, body, options);
|
|
137
|
+
};
|
|
138
|
+
this.put = ({ url, body, urlParams, params, }) => {
|
|
139
|
+
url = this.setUrlParams(url, urlParams);
|
|
140
|
+
let options = body instanceof FormData
|
|
141
|
+
? this.setOptionsForFile(params)
|
|
142
|
+
: this.setOptions(params);
|
|
143
|
+
return this.http.put(url, body, options);
|
|
144
|
+
};
|
|
145
|
+
this.patch = ({ url, body, urlParams, params, }) => {
|
|
146
|
+
url = this.setUrlParams(url, urlParams);
|
|
147
|
+
let options = body instanceof FormData
|
|
148
|
+
? this.setOptionsForFile(params)
|
|
149
|
+
: this.setOptions(params);
|
|
150
|
+
return this.http.patch(url, body, options);
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Generated bundle index. Do not edit.
|
|
157
|
+
*/
|
|
158
|
+
|
|
159
|
+
export { VonRestInterceptorService, VonRestService };
|
|
160
|
+
//# sourceMappingURL=von-development-studio-angular-rest-service.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"von-development-studio-angular-rest-service.mjs","sources":["../../../projects/angular-rest-service/src/lib/von-rest-interceptor.service.ts","../../../projects/angular-rest-service/src/lib/von-rest.service.ts","../../../projects/angular-rest-service/src/von-development-studio-angular-rest-service.ts"],"sourcesContent":["import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { VonErrorRestInterceptorModel } from './model/von-error-rest-interceptor.model';\n\nexport abstract class VonRestInterceptorService implements HttpInterceptor {\n protected consoleDebug = false;\n protected errorResponseUnknown = 'Unknown Error';\n protected errorResponseForbidden = 'Forbidden Error';\n protected urlWhoAmI = 'api/who-am-i';\n protected redirectOn403 = true;\n protected redirect403Url = ['403'];\n\n constructor(protected router: Router) {}\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n return next.handle(request).pipe(map(this.mapEvent), catchError(this.catchError));\n }\n\n protected postHttpRequest = () => {};\n\n protected mapEvent = (event: HttpEvent<any>) => {\n if (event instanceof HttpResponse) {\n if (event.status === 200 || event.status === 204) {\n this.postHttpRequest();\n return event;\n }\n if (event.status !== 200) {\n const error: VonErrorRestInterceptorModel = {\n status: event.status,\n message: event.statusText,\n body: event.body,\n };\n if (this.consoleDebug) {\n console.error('[ErrorWS]: ', error);\n }\n throw error;\n }\n }\n return event;\n };\n\n protected catchError = (errorResponse: HttpErrorResponse) => {\n if (this.consoleDebug) {\n console.error('[Fatal]: ', errorResponse);\n }\n const error: VonErrorRestInterceptorModel = {\n status: errorResponse.status,\n message: '',\n body: errorResponse.error || {},\n };\n if (errorResponse.status === 0) {\n error.message = this.errorResponseUnknown;\n }\n if (errorResponse.status === 401) {\n error.message = errorResponse.error ? errorResponse.error : this.errorResponseForbidden;\n }\n if (this.redirectOn403) {\n if (errorResponse.status === 403 || (errorResponse.url && errorResponse.url.indexOf(this.urlWhoAmI) > -1)) {\n this.router.navigate(this.redirect403Url);\n }\n }\n this.postHttpRequest();\n return throwError(error);\n };\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { Observable } from 'rxjs';\nimport { map, share, take } from 'rxjs/operators';\nimport { VonHttpOptionsModel } from './model/von-http-options.model';\nimport {\n DeleteParams,\n GenericParams,\n GetParams,\n HeaderParams,\n PostParams,\n PutParams,\n} from './model/von-rest-definition.type';\n\nexport abstract class VonRestService {\n constructor(protected http: HttpClient, protected sanitizer: DomSanitizer) {}\n\n protected setHeaders = (headerParams?: HeaderParams): HttpHeaders => {\n return new HttpHeaders({\n 'Content-Type': headerParams?.contentType ?? 'application/json',\n Accept: headerParams?.accept ?? 'application/json',\n 'Access-Control-Allow-Origin': '*',\n });\n };\n\n protected setOptions = (headerParams?: HeaderParams): VonHttpOptionsModel => {\n return {\n headers: this.setHeaders(headerParams),\n params: headerParams?.params,\n withCredentials: true,\n };\n };\n\n protected setOptionsForFile = (\n headerParams?: HeaderParams\n ): VonHttpOptionsModel => {\n return {\n ...this.setOptions(headerParams?.params),\n headers: new HttpHeaders({\n Accept: headerParams?.accept ?? 'application/json',\n 'Access-Control-Allow-Origin': '*',\n }),\n };\n };\n\n protected setUrlParams = (url: string, params?: GenericParams) => {\n if (params != null) {\n for (const p in params) {\n if (p != null) {\n url = url.replace(`{${p}}`, params[p]);\n }\n }\n }\n return url;\n };\n\n protected authenticate = (\n url: string,\n username: string,\n password: string\n ): Observable<any> => {\n const authorization = btoa(`${username}:${password}`);\n const headers = new HttpHeaders({\n authorization: `Basic ${authorization}`,\n });\n return this.http\n .get(url, {\n headers,\n withCredentials: true,\n })\n .pipe(take(1), share());\n };\n\n protected get = <R = any>({\n url,\n urlParams,\n params,\n }: GetParams): Observable<R> => {\n url = this.setUrlParams(url, urlParams);\n return this.http.get<R>(url, this.setOptions(params));\n };\n\n protected file = ({\n url,\n urlParams,\n params,\n }: GetParams): Observable<SafeResourceUrl> => {\n url = this.setUrlParams(url, urlParams);\n return this.http\n .get(url, {\n ...this.setOptionsForFile(params),\n responseType: 'blob' as 'json',\n })\n .pipe(\n map((res: any) => {\n const fileBlob = new Blob([res], { type: params?.contentType });\n const objUrl = URL.createObjectURL(fileBlob);\n const sanitized =\n this.sanitizer.bypassSecurityTrustResourceUrl(objUrl);\n return sanitized;\n })\n );\n };\n\n protected delete = <R = any>({\n url,\n urlParams,\n params,\n }: DeleteParams): Observable<R> => {\n url = this.setUrlParams(url, urlParams);\n return this.http.delete<R>(url, this.setOptions(params));\n };\n\n protected post = <R = any, B = any | FormData>({\n url,\n body,\n urlParams,\n params,\n }: PostParams<B>): Observable<R> => {\n url = this.setUrlParams(url, urlParams);\n let options =\n body instanceof FormData\n ? this.setOptionsForFile(params)\n : this.setOptions(params);\n return this.http.post<R>(url, body, options);\n };\n\n protected put = <R = any, B = any | FormData>({\n url,\n body,\n urlParams,\n params,\n }: PutParams<B>): Observable<R> => {\n url = this.setUrlParams(url, urlParams);\n let options =\n body instanceof FormData\n ? this.setOptionsForFile(params)\n : this.setOptions(params);\n return this.http.put<R>(url, body, options);\n };\n\n protected patch = <R = any, B = any | FormData>({\n url,\n body,\n urlParams,\n params,\n }: PutParams<B>): Observable<R> => {\n url = this.setUrlParams(url, urlParams);\n let options =\n body instanceof FormData\n ? this.setOptionsForFile(params)\n : this.setOptions(params);\n return this.http.patch<R>(url, body, options);\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -65,18 +65,27 @@ class VonRestService {
|
|
|
65
65
|
constructor(http, sanitizer) {
|
|
66
66
|
this.http = http;
|
|
67
67
|
this.sanitizer = sanitizer;
|
|
68
|
-
this.setHeaders = (
|
|
68
|
+
this.setHeaders = (headerParams) => {
|
|
69
69
|
return new HttpHeaders({
|
|
70
|
-
'Content-Type': 'application/json',
|
|
71
|
-
Accept:
|
|
72
|
-
'Access-Control-Allow-Origin': '*'
|
|
70
|
+
'Content-Type': headerParams?.contentType ?? 'application/json',
|
|
71
|
+
Accept: headerParams?.accept ?? 'application/json',
|
|
72
|
+
'Access-Control-Allow-Origin': '*',
|
|
73
73
|
});
|
|
74
74
|
};
|
|
75
|
-
this.setOptions = (
|
|
75
|
+
this.setOptions = (headerParams) => {
|
|
76
76
|
return {
|
|
77
|
-
headers: this.setHeaders(),
|
|
78
|
-
params,
|
|
79
|
-
withCredentials: true
|
|
77
|
+
headers: this.setHeaders(headerParams),
|
|
78
|
+
params: headerParams?.params,
|
|
79
|
+
withCredentials: true,
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
this.setOptionsForFile = (headerParams) => {
|
|
83
|
+
return {
|
|
84
|
+
...this.setOptions(headerParams?.params),
|
|
85
|
+
headers: new HttpHeaders({
|
|
86
|
+
Accept: headerParams?.accept ?? 'application/json',
|
|
87
|
+
'Access-Control-Allow-Origin': '*',
|
|
88
|
+
}),
|
|
80
89
|
};
|
|
81
90
|
};
|
|
82
91
|
this.setUrlParams = (url, params) => {
|
|
@@ -94,57 +103,55 @@ class VonRestService {
|
|
|
94
103
|
const headers = new HttpHeaders({
|
|
95
104
|
authorization: `Basic ${authorization}`,
|
|
96
105
|
});
|
|
97
|
-
return this.http
|
|
106
|
+
return this.http
|
|
107
|
+
.get(url, {
|
|
98
108
|
headers,
|
|
99
|
-
withCredentials: true
|
|
100
|
-
})
|
|
101
|
-
|
|
102
|
-
this.logout = (url) => {
|
|
103
|
-
return this.http.delete(url, this.setOptions()).pipe(take(1), share());
|
|
104
|
-
};
|
|
105
|
-
this.get = (url, urlParams, queryParams) => {
|
|
106
|
-
url = this.setUrlParams(url, urlParams);
|
|
107
|
-
return this.http.get(url, this.setOptions(queryParams));
|
|
108
|
-
};
|
|
109
|
-
this.delete = (url, urlParams, queryParams) => {
|
|
110
|
-
url = this.setUrlParams(url, urlParams);
|
|
111
|
-
return this.http.delete(url, this.setOptions(queryParams));
|
|
109
|
+
withCredentials: true,
|
|
110
|
+
})
|
|
111
|
+
.pipe(take(1), share());
|
|
112
112
|
};
|
|
113
|
-
this.
|
|
113
|
+
this.get = ({ url, urlParams, params, }) => {
|
|
114
114
|
url = this.setUrlParams(url, urlParams);
|
|
115
|
-
return this.http.
|
|
115
|
+
return this.http.get(url, this.setOptions(params));
|
|
116
116
|
};
|
|
117
|
-
this.
|
|
117
|
+
this.file = ({ url, urlParams, params, }) => {
|
|
118
118
|
url = this.setUrlParams(url, urlParams);
|
|
119
|
-
return this.http
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
return Object.assign(Object.assign({}, this.setOptions(queryParams)), { headers: this.setHeaders(contentType), responseType: 'blob' });
|
|
127
|
-
};
|
|
128
|
-
this.getFile = (contentType, url, urlParams, queryParams) => {
|
|
129
|
-
url = this.setUrlParams(url, urlParams);
|
|
130
|
-
return this.http.get(url, this.setFileOptions(contentType, queryParams)).pipe(map((res) => {
|
|
131
|
-
const fileBlob = new Blob([res], { type: contentType });
|
|
119
|
+
return this.http
|
|
120
|
+
.get(url, {
|
|
121
|
+
...this.setOptionsForFile(params),
|
|
122
|
+
responseType: 'blob',
|
|
123
|
+
})
|
|
124
|
+
.pipe(map((res) => {
|
|
125
|
+
const fileBlob = new Blob([res], { type: params?.contentType });
|
|
132
126
|
const objUrl = URL.createObjectURL(fileBlob);
|
|
133
127
|
const sanitized = this.sanitizer.bypassSecurityTrustResourceUrl(objUrl);
|
|
134
128
|
return sanitized;
|
|
135
129
|
}));
|
|
136
130
|
};
|
|
137
|
-
this.
|
|
131
|
+
this.delete = ({ url, urlParams, params, }) => {
|
|
132
|
+
url = this.setUrlParams(url, urlParams);
|
|
133
|
+
return this.http.delete(url, this.setOptions(params));
|
|
134
|
+
};
|
|
135
|
+
this.post = ({ url, body, urlParams, params, }) => {
|
|
138
136
|
url = this.setUrlParams(url, urlParams);
|
|
139
|
-
|
|
137
|
+
let options = body instanceof FormData
|
|
138
|
+
? this.setOptionsForFile(params)
|
|
139
|
+
: this.setOptions(params);
|
|
140
|
+
return this.http.post(url, body, options);
|
|
140
141
|
};
|
|
141
|
-
this.
|
|
142
|
+
this.put = ({ url, body, urlParams, params, }) => {
|
|
142
143
|
url = this.setUrlParams(url, urlParams);
|
|
143
|
-
|
|
144
|
+
let options = body instanceof FormData
|
|
145
|
+
? this.setOptionsForFile(params)
|
|
146
|
+
: this.setOptions(params);
|
|
147
|
+
return this.http.put(url, body, options);
|
|
144
148
|
};
|
|
145
|
-
this.
|
|
149
|
+
this.patch = ({ url, body, urlParams, params, }) => {
|
|
146
150
|
url = this.setUrlParams(url, urlParams);
|
|
147
|
-
|
|
151
|
+
let options = body instanceof FormData
|
|
152
|
+
? this.setOptionsForFile(params)
|
|
153
|
+
: this.setOptions(params);
|
|
154
|
+
return this.http.patch(url, body, options);
|
|
148
155
|
};
|
|
149
156
|
}
|
|
150
157
|
}
|
|
@@ -154,4 +161,4 @@ class VonRestService {
|
|
|
154
161
|
*/
|
|
155
162
|
|
|
156
163
|
export { VonRestInterceptorService, VonRestService };
|
|
157
|
-
//# sourceMappingURL=von-development-studio-angular-rest-service.
|
|
164
|
+
//# sourceMappingURL=von-development-studio-angular-rest-service.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"von-development-studio-angular-rest-service.mjs","sources":["../../../projects/angular-rest-service/src/lib/von-rest-interceptor.service.ts","../../../projects/angular-rest-service/src/lib/von-rest.service.ts","../../../projects/angular-rest-service/src/von-development-studio-angular-rest-service.ts"],"sourcesContent":["import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { VonErrorRestInterceptorModel } from './model/von-error-rest-interceptor.model';\n\nexport abstract class VonRestInterceptorService implements HttpInterceptor {\n protected consoleDebug = false;\n protected errorResponseUnknown = 'Unknown Error';\n protected errorResponseForbidden = 'Forbidden Error';\n protected urlWhoAmI = 'api/who-am-i';\n protected redirectOn403 = true;\n protected redirect403Url = ['403'];\n\n constructor(protected router: Router) {}\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n return next.handle(request).pipe(map(this.mapEvent), catchError(this.catchError));\n }\n\n protected postHttpRequest = () => {};\n\n protected mapEvent = (event: HttpEvent<any>) => {\n if (event instanceof HttpResponse) {\n if (event.status === 200 || event.status === 204) {\n this.postHttpRequest();\n return event;\n }\n if (event.status !== 200) {\n const error: VonErrorRestInterceptorModel = {\n status: event.status,\n message: event.statusText,\n body: event.body,\n };\n if (this.consoleDebug) {\n console.error('[ErrorWS]: ', error);\n }\n throw error;\n }\n }\n return event;\n };\n\n protected catchError = (errorResponse: HttpErrorResponse) => {\n if (this.consoleDebug) {\n console.error('[Fatal]: ', errorResponse);\n }\n const error: VonErrorRestInterceptorModel = {\n status: errorResponse.status,\n message: '',\n body: errorResponse.error || {},\n };\n if (errorResponse.status === 0) {\n error.message = this.errorResponseUnknown;\n }\n if (errorResponse.status === 401) {\n error.message = errorResponse.error ? errorResponse.error : this.errorResponseForbidden;\n }\n if (this.redirectOn403) {\n if (errorResponse.status === 403 || (errorResponse.url && errorResponse.url.indexOf(this.urlWhoAmI) > -1)) {\n this.router.navigate(this.redirect403Url);\n }\n }\n this.postHttpRequest();\n return throwError(error);\n };\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { Observable } from 'rxjs';\nimport { map, share, take } from 'rxjs/operators';\nimport { VonHttpOptionsModel } from './model/von-http-options.model';\nimport {\n DeleteParams,\n GenericParams,\n GetParams,\n HeaderParams,\n PostParams,\n PutParams,\n} from './model/von-rest-definition.type';\n\nexport abstract class VonRestService {\n constructor(protected http: HttpClient, protected sanitizer: DomSanitizer) {}\n\n protected setHeaders = (headerParams?: HeaderParams): HttpHeaders => {\n return new HttpHeaders({\n 'Content-Type': headerParams?.contentType ?? 'application/json',\n Accept: headerParams?.accept ?? 'application/json',\n 'Access-Control-Allow-Origin': '*',\n });\n };\n\n protected setOptions = (headerParams?: HeaderParams): VonHttpOptionsModel => {\n return {\n headers: this.setHeaders(headerParams),\n params: headerParams?.params,\n withCredentials: true,\n };\n };\n\n protected setOptionsForFile = (\n headerParams?: HeaderParams\n ): VonHttpOptionsModel => {\n return {\n ...this.setOptions(headerParams?.params),\n headers: new HttpHeaders({\n Accept: headerParams?.accept ?? 'application/json',\n 'Access-Control-Allow-Origin': '*',\n }),\n };\n };\n\n protected setUrlParams = (url: string, params?: GenericParams) => {\n if (params != null) {\n for (const p in params) {\n if (p != null) {\n url = url.replace(`{${p}}`, params[p]);\n }\n }\n }\n return url;\n };\n\n protected authenticate = (\n url: string,\n username: string,\n password: string\n ): Observable<any> => {\n const authorization = btoa(`${username}:${password}`);\n const headers = new HttpHeaders({\n authorization: `Basic ${authorization}`,\n });\n return this.http\n .get(url, {\n headers,\n withCredentials: true,\n })\n .pipe(take(1), share());\n };\n\n protected get = <R = any>({\n url,\n urlParams,\n params,\n }: GetParams): Observable<R> => {\n url = this.setUrlParams(url, urlParams);\n return this.http.get<R>(url, this.setOptions(params));\n };\n\n protected file = ({\n url,\n urlParams,\n params,\n }: GetParams): Observable<SafeResourceUrl> => {\n url = this.setUrlParams(url, urlParams);\n return this.http\n .get(url, {\n ...this.setOptionsForFile(params),\n responseType: 'blob' as 'json',\n })\n .pipe(\n map((res: any) => {\n const fileBlob = new Blob([res], { type: params?.contentType });\n const objUrl = URL.createObjectURL(fileBlob);\n const sanitized =\n this.sanitizer.bypassSecurityTrustResourceUrl(objUrl);\n return sanitized;\n })\n );\n };\n\n protected delete = <R = any>({\n url,\n urlParams,\n params,\n }: DeleteParams): Observable<R> => {\n url = this.setUrlParams(url, urlParams);\n return this.http.delete<R>(url, this.setOptions(params));\n };\n\n protected post = <R = any, B = any | FormData>({\n url,\n body,\n urlParams,\n params,\n }: PostParams<B>): Observable<R> => {\n url = this.setUrlParams(url, urlParams);\n let options =\n body instanceof FormData\n ? this.setOptionsForFile(params)\n : this.setOptions(params);\n return this.http.post<R>(url, body, options);\n };\n\n protected put = <R = any, B = any | FormData>({\n url,\n body,\n urlParams,\n params,\n }: PutParams<B>): Observable<R> => {\n url = this.setUrlParams(url, urlParams);\n let options =\n body instanceof FormData\n ? this.setOptionsForFile(params)\n : this.setOptions(params);\n return this.http.put<R>(url, body, options);\n };\n\n protected patch = <R = any, B = any | FormData>({\n url,\n body,\n urlParams,\n params,\n }: PutParams<B>): Observable<R> => {\n url = this.setUrlParams(url, urlParams);\n let options =\n body instanceof FormData\n ? this.setOptionsForFile(params)\n : this.setOptions(params);\n return this.http.patch<R>(url, body, options);\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface GenericParams {
|
|
2
|
+
[key: string]: any;
|
|
3
|
+
}
|
|
4
|
+
export declare type HeaderParams = {
|
|
5
|
+
contentType?: string;
|
|
6
|
+
accept?: string;
|
|
7
|
+
} & {
|
|
8
|
+
params?: GenericParams;
|
|
9
|
+
};
|
|
10
|
+
export interface BaseParams {
|
|
11
|
+
url: string;
|
|
12
|
+
urlParams?: GenericParams;
|
|
13
|
+
params?: HeaderParams;
|
|
14
|
+
}
|
|
15
|
+
export declare type GetParams = BaseParams;
|
|
16
|
+
export declare type DeleteParams = BaseParams;
|
|
17
|
+
export declare type PostParams<B = any | FormData> = BaseParams & {
|
|
18
|
+
body: B;
|
|
19
|
+
};
|
|
20
|
+
export declare type PutParams<B = any | FormData> = BaseParams & {
|
|
21
|
+
body: B;
|
|
22
|
+
};
|
|
23
|
+
export declare type PatchParams<B = any | FormData> = BaseParams & {
|
|
24
|
+
body: B;
|
|
25
|
+
};
|