@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.
Files changed (36) hide show
  1. package/esm2020/lib/model/von-error-response.model.mjs +2 -0
  2. package/esm2020/lib/model/von-error-rest-interceptor.model.mjs +2 -0
  3. package/esm2020/lib/model/von-http-options.model.mjs +2 -0
  4. package/esm2020/lib/model/von-page-response.model.mjs +2 -0
  5. package/esm2020/lib/model/von-rest-definition.type.mjs +2 -0
  6. package/esm2020/lib/von-rest-interceptor.service.mjs +62 -0
  7. package/esm2020/lib/von-rest.service.mjs +97 -0
  8. package/{esm2015/public-api.js → esm2020/public-api.mjs} +2 -2
  9. package/{esm2015/von-development-studio-angular-rest-service.js → esm2020/von-development-studio-angular-rest-service.mjs} +1 -1
  10. package/fesm2015/von-development-studio-angular-rest-service.mjs +160 -0
  11. package/fesm2015/von-development-studio-angular-rest-service.mjs.map +1 -0
  12. package/{fesm2015/von-development-studio-angular-rest-service.js → fesm2020/von-development-studio-angular-rest-service.mjs} +52 -45
  13. package/fesm2020/von-development-studio-angular-rest-service.mjs.map +1 -0
  14. package/lib/model/von-error-response.model.d.ts +0 -0
  15. package/lib/model/von-error-rest-interceptor.model.d.ts +0 -0
  16. package/lib/model/von-http-options.model.d.ts +0 -0
  17. package/lib/model/von-page-response.model.d.ts +0 -0
  18. package/lib/model/von-rest-definition.type.d.ts +25 -0
  19. package/lib/von-rest-interceptor.service.d.ts +0 -0
  20. package/lib/von-rest.service.d.ts +14 -16
  21. package/package.json +24 -12
  22. package/public-api.d.ts +1 -1
  23. package/von-development-studio-angular-rest-service.d.ts +1 -0
  24. package/CHANGELOG.md +0 -7
  25. package/bundles/von-development-studio-angular-rest-service.umd.js +0 -169
  26. package/bundles/von-development-studio-angular-rest-service.umd.js.map +0 -1
  27. package/bundles/von-development-studio-angular-rest-service.umd.min.js +0 -2
  28. package/bundles/von-development-studio-angular-rest-service.umd.min.js.map +0 -1
  29. package/esm2015/lib/model/von-error-response.model.js +0 -2
  30. package/esm2015/lib/model/von-error-rest-interceptor.model.js +0 -2
  31. package/esm2015/lib/model/von-http-options.model.js +0 -2
  32. package/esm2015/lib/model/von-page-response.model.js +0 -2
  33. package/esm2015/lib/von-rest-interceptor.service.js +0 -62
  34. package/esm2015/lib/von-rest.service.js +0 -90
  35. package/fesm2015/von-development-studio-angular-rest-service.js.map +0 -1
  36. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9uLXJlc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItcmVzdC1zZXJ2aWNlL3NyYy9saWIvdm9uLXJlc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHL0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFXbEQsTUFBTSxPQUFnQixjQUFjO0lBQ2xDLFlBQXNCLElBQWdCLEVBQVksU0FBdUI7UUFBbkQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFZLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFFL0QsZUFBVSxHQUFHLENBQUMsWUFBMkIsRUFBZSxFQUFFO1lBQ2xFLE9BQU8sSUFBSSxXQUFXLENBQUM7Z0JBQ3JCLGNBQWMsRUFBRSxZQUFZLEVBQUUsV0FBVyxJQUFJLGtCQUFrQjtnQkFDL0QsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLElBQUksa0JBQWtCO2dCQUNsRCw2QkFBNkIsRUFBRSxHQUFHO2FBQ25DLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVRLGVBQVUsR0FBRyxDQUFDLFlBQTJCLEVBQXVCLEVBQUU7WUFDMUUsT0FBTztnQkFDTCxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7Z0JBQ3RDLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTTtnQkFDNUIsZUFBZSxFQUFFLElBQUk7YUFDdEIsQ0FBQztRQUNKLENBQUMsQ0FBQztRQUVRLHNCQUFpQixHQUFHLENBQzVCLFlBQTJCLEVBQ04sRUFBRTtZQUN2QixPQUFPO2dCQUNMLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDO2dCQUN4QyxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUM7b0JBQ3ZCLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxJQUFJLGtCQUFrQjtvQkFDbEQsNkJBQTZCLEVBQUUsR0FBRztpQkFDbkMsQ0FBQzthQUNILENBQUM7UUFDSixDQUFDLENBQUM7UUFFUSxpQkFBWSxHQUFHLENBQUMsR0FBVyxFQUFFLE1BQXNCLEVBQUUsRUFBRTtZQUMvRCxJQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUU7Z0JBQ2xCLEtBQUssTUFBTSxDQUFDLElBQUksTUFBTSxFQUFFO29CQUN0QixJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUU7d0JBQ2IsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDeEM7aUJBQ0Y7YUFDRjtZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDO1FBRVEsaUJBQVksR0FBRyxDQUN2QixHQUFXLEVBQ1gsUUFBZ0IsRUFDaEIsUUFBZ0IsRUFDQyxFQUFFO1lBQ25CLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLFFBQVEsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxDQUFDO2dCQUM5QixhQUFhLEVBQUUsU0FBUyxhQUFhLEVBQUU7YUFDeEMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxJQUFJLENBQUMsSUFBSTtpQkFDYixHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNSLE9BQU87Z0JBQ1AsZUFBZSxFQUFFLElBQUk7YUFDdEIsQ0FBQztpQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDO1FBRVEsUUFBRyxHQUFHLENBQVUsRUFDeEIsR0FBRyxFQUNILFNBQVMsRUFDVCxNQUFNLEdBQ0ksRUFBaUIsRUFBRTtZQUM3QixHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDeEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxHQUFHLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3hELENBQUMsQ0FBQztRQUVRLFNBQUksR0FBRyxDQUFDLEVBQ2hCLEdBQUcsRUFDSCxTQUFTLEVBQ1QsTUFBTSxHQUNJLEVBQStCLEVBQUU7WUFDM0MsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUk7aUJBQ2IsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDUixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7Z0JBQ2pDLFlBQVksRUFBRSxNQUFnQjthQUMvQixDQUFDO2lCQUNELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDZixNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO2dCQUNoRSxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM3QyxNQUFNLFNBQVMsR0FDYixJQUFJLENBQUMsU0FBUyxDQUFDLDhCQUE4QixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4RCxPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ04sQ0FBQyxDQUFDO1FBRVEsV0FBTSxHQUFHLENBQVUsRUFDM0IsR0FBRyxFQUNILFNBQVMsRUFDVCxNQUFNLEdBQ08sRUFBaUIsRUFBRTtZQUNoQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDeEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBSSxHQUFHLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQztRQUVRLFNBQUksR0FBRyxDQUE4QixFQUM3QyxHQUFHLEVBQ0gsSUFBSSxFQUNKLFNBQVMsRUFDVCxNQUFNLEdBQ1EsRUFBaUIsRUFBRTtZQUNqQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDeEMsSUFBSSxPQUFPLEdBQ1QsSUFBSSxZQUFZLFFBQVE7Z0JBQ3RCLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDO2dCQUNoQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDL0MsQ0FBQyxDQUFDO1FBRVEsUUFBRyxHQUFHLENBQThCLEVBQzVDLEdBQUcsRUFDSCxJQUFJLEVBQ0osU0FBUyxFQUNULE1BQU0sR0FDTyxFQUFpQixFQUFFO1lBQ2hDLEdBQUcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN4QyxJQUFJLE9BQU8sR0FDVCxJQUFJLFlBQVksUUFBUTtnQkFDdEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7Z0JBQ2hDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksR0FBRyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUM7UUFFUSxVQUFLLEdBQUcsQ0FBOEIsRUFDOUMsR0FBRyxFQUNILElBQUksRUFDSixTQUFTLEVBQ1QsTUFBTSxHQUNPLEVBQWlCLEVBQUU7WUFDaEMsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3hDLElBQUksT0FBTyxHQUNULElBQUksWUFBWSxRQUFRO2dCQUN0QixDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztnQkFDaEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELENBQUMsQ0FBQztJQTFJMEUsQ0FBQztDQTJJOUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVJlc291cmNlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHNoYXJlLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVm9uSHR0cE9wdGlvbnNNb2RlbCB9IGZyb20gJy4vbW9kZWwvdm9uLWh0dHAtb3B0aW9ucy5tb2RlbCc7XG5pbXBvcnQge1xuICBEZWxldGVQYXJhbXMsXG4gIEdlbmVyaWNQYXJhbXMsXG4gIEdldFBhcmFtcyxcbiAgSGVhZGVyUGFyYW1zLFxuICBQb3N0UGFyYW1zLFxuICBQdXRQYXJhbXMsXG59IGZyb20gJy4vbW9kZWwvdm9uLXJlc3QtZGVmaW5pdGlvbi50eXBlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFZvblJlc3RTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsIHByb3RlY3RlZCBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cblxuICBwcm90ZWN0ZWQgc2V0SGVhZGVycyA9IChoZWFkZXJQYXJhbXM/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-page-response.model';
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXJlc3Qtc2VydmljZS9zcmMvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWwvdm9uLWVycm9yLXJlc3BvbnNlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL3Zvbi1lcnJvci1yZXN0LWludGVyY2VwdG9yLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL3Zvbi1wYWdlLXJlc3BvbnNlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL3Zvbi1wYWdlLXJlc3BvbnNlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Zvbi1yZXN0LWludGVyY2VwdG9yLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdm9uLXJlc3Quc2VydmljZSc7XG4iXX0=
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9uLWRldmVsb3BtZW50LXN0dWRpby1hbmd1bGFyLXJlc3Qtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXJlc3Qtc2VydmljZS9zcmMvIiwic291cmNlcyI6WyJ2b24tZGV2ZWxvcG1lbnQtc3R1ZGlvLWFuZ3VsYXItcmVzdC1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
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 = (contentType = 'application/json') => {
68
+ this.setHeaders = (headerParams) => {
69
69
  return new HttpHeaders({
70
- 'Content-Type': 'application/json',
71
- Accept: contentType,
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 = (params) => {
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.get(url, {
106
+ return this.http
107
+ .get(url, {
98
108
  headers,
99
- withCredentials: true
100
- }).pipe(take(1), share());
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.post = (url, body, urlParams, queryParams) => {
113
+ this.get = ({ url, urlParams, params, }) => {
114
114
  url = this.setUrlParams(url, urlParams);
115
- return this.http.post(url, body, this.setOptions(queryParams));
115
+ return this.http.get(url, this.setOptions(params));
116
116
  };
117
- this.put = (url, body, urlParams, queryParams) => {
117
+ this.file = ({ url, urlParams, params, }) => {
118
118
  url = this.setUrlParams(url, urlParams);
119
- return this.http.put(url, body, this.setOptions(queryParams));
120
- };
121
- this.patch = (url, body, urlParams, queryParams) => {
122
- url = this.setUrlParams(url, urlParams);
123
- return this.http.patch(url, body, this.setOptions(queryParams));
124
- };
125
- this.setFileOptions = (contentType, queryParams) => {
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.postFile = (contentType, url, body, urlParams, queryParams) => {
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
- return this.http.post(url, body, this.setFileOptions(contentType, queryParams));
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.putFile = (contentType, url, body, urlParams, queryParams) => {
142
+ this.put = ({ url, body, urlParams, params, }) => {
142
143
  url = this.setUrlParams(url, urlParams);
143
- return this.http.put(url, body, this.setFileOptions(contentType, queryParams));
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.patchFile = (contentType, url, body, urlParams, queryParams) => {
149
+ this.patch = ({ url, body, urlParams, params, }) => {
146
150
  url = this.setUrlParams(url, urlParams);
147
- return this.http.patch(url, body, this.setFileOptions(contentType, queryParams));
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.js.map
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
+ };