@ng-vagabond-lab/ng-dsv 0.0.30 → 0.0.31
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.
|
@@ -8,7 +8,7 @@ const authInterceptor = (req, next) => {
|
|
|
8
8
|
const httpClient = inject(HttpClient);
|
|
9
9
|
const apiService = inject(ApiService);
|
|
10
10
|
const storageService = inject(StorageService);
|
|
11
|
-
return next(getToken(req, storageService)).pipe(catchError((error) => {
|
|
11
|
+
return next(getToken(req, apiService, storageService)).pipe(catchError((error) => {
|
|
12
12
|
if (error instanceof HttpErrorResponse &&
|
|
13
13
|
!req.url.includes('auth/') &&
|
|
14
14
|
req.url.includes(apiService.baseUrl) &&
|
|
@@ -18,9 +18,9 @@ const authInterceptor = (req, next) => {
|
|
|
18
18
|
return throwError(() => error);
|
|
19
19
|
}));
|
|
20
20
|
};
|
|
21
|
-
const getToken = (req, storageService) => {
|
|
21
|
+
const getToken = (req, apiService, storageService) => {
|
|
22
22
|
const jwt = storageService.getItem('user-connected')?.['jwt'] ?? '';
|
|
23
|
-
if (!req.url.includes('/auth/')) {
|
|
23
|
+
if (!req.url.includes('/auth/') && req.url.includes(apiService.baseUrl)) {
|
|
24
24
|
const headers = req.headers.set('Authorization', `Bearer ${jwt}`);
|
|
25
25
|
return req.clone({
|
|
26
26
|
headers,
|
|
@@ -36,7 +36,7 @@ const handle401Error = (httpClient, apiService, storageService, request, next) =
|
|
|
36
36
|
})
|
|
37
37
|
.pipe(switchMap((response) => {
|
|
38
38
|
storageService.setItem('user-connected', JSON.stringify(response));
|
|
39
|
-
return next(getToken(request, storageService));
|
|
39
|
+
return next(getToken(request, apiService, storageService));
|
|
40
40
|
}));
|
|
41
41
|
};
|
|
42
42
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-api.mjs","sources":["../../../projects/ng-dsv/api/interceptor/api.interceptor.ts","../../../projects/ng-dsv/api/service/api.service.ts","../../../projects/ng-dsv/api/ng-vagabond-lab-ng-dsv-api.ts"],"sourcesContent":["import {\n HttpClient,\n HttpErrorResponse,\n HttpHandlerFn,\n HttpInterceptorFn,\n HttpRequest,\n} from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { StorageService } from '@ng-vagabond-lab/ng-dsv/storage';\nimport { catchError, switchMap, throwError } from 'rxjs';\nimport { ApiService } from '../public-api';\n\nexport const authInterceptor: HttpInterceptorFn = (req, next) => {\n const httpClient = inject(HttpClient);\n const apiService = inject(ApiService);\n const storageService = inject(StorageService);\n\n return next(getToken(req, storageService)).pipe(\n catchError((error) => {\n if (\n error instanceof HttpErrorResponse &&\n !req.url.includes('auth/') &&\n req.url.includes(apiService.baseUrl) &&\n error.status === 401\n ) {\n return handle401Error(\n httpClient,\n apiService,\n storageService,\n req,\n next\n );\n }\n\n return throwError(() => error);\n })\n );\n};\n\nconst getToken = <T>(req: HttpRequest<T
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-api.mjs","sources":["../../../projects/ng-dsv/api/interceptor/api.interceptor.ts","../../../projects/ng-dsv/api/service/api.service.ts","../../../projects/ng-dsv/api/ng-vagabond-lab-ng-dsv-api.ts"],"sourcesContent":["import {\n HttpClient,\n HttpErrorResponse,\n HttpHandlerFn,\n HttpInterceptorFn,\n HttpRequest,\n} from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { StorageService } from '@ng-vagabond-lab/ng-dsv/storage';\nimport { catchError, switchMap, throwError } from 'rxjs';\nimport { ApiService } from '../public-api';\n\nexport const authInterceptor: HttpInterceptorFn = (req, next) => {\n const httpClient = inject(HttpClient);\n const apiService = inject(ApiService);\n const storageService = inject(StorageService);\n\n return next(getToken(req, apiService, storageService)).pipe(\n catchError((error) => {\n if (\n error instanceof HttpErrorResponse &&\n !req.url.includes('auth/') &&\n req.url.includes(apiService.baseUrl) &&\n error.status === 401\n ) {\n return handle401Error(\n httpClient,\n apiService,\n storageService,\n req,\n next\n );\n }\n\n return throwError(() => error);\n })\n );\n};\n\nconst getToken = <T>(\n req: HttpRequest<T>,\n apiService: ApiService,\n storageService: StorageService\n) => {\n const jwt =\n storageService.getItem('user-connected')?.['jwt' as keyof {}] ?? '';\n if (!req.url.includes('/auth/') && req.url.includes(apiService.baseUrl)) {\n const headers = req.headers.set('Authorization', `Bearer ${jwt}`);\n\n return req.clone({\n headers,\n });\n }\n return req;\n};\n\nconst handle401Error = <T>(\n httpClient: HttpClient,\n apiService: ApiService,\n storageService: StorageService,\n request: HttpRequest<T>,\n next: HttpHandlerFn\n) => {\n const jwtRefresh =\n storageService.getItem('user-connected')?.['jwtRefresh' as keyof {}] ?? '';\n return httpClient\n .post(apiService.baseUrl + '/auth/refresh-token', {\n refreshToken: jwtRefresh,\n })\n .pipe(\n switchMap((response) => {\n storageService.setItem('user-connected', JSON.stringify(response));\n return next(getToken(request, apiService, storageService));\n })\n );\n};\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { JSONObject } from '../dto/api.dto';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiService {\n baseUrl!: string;\n httpClient = inject(HttpClient);\n\n setBaseUrl(url: string) {\n this.baseUrl = url;\n }\n\n get<T>(url: string, callback: (data: T) => void) {\n this.httpClient.get<T>(this.baseUrl + url).subscribe({\n next: (res) => {\n this.info(url, res as JSONObject);\n callback(res);\n },\n error: (error: JSONObject) => {\n this.error(url, error);\n },\n });\n }\n\n post<T>(url: string, data: T, callback: (data: T) => void) {\n this.httpClient.post<T>(this.baseUrl + url, data).subscribe({\n next: (res) => {\n this.info(url, res as JSONObject);\n callback(res);\n },\n error: (error: JSONObject) => {\n this.error(url, error);\n },\n });\n }\n\n info(url: string, data: JSONObject) {\n console.log(url, data);\n }\n\n error(url: string, error: JSONObject) {\n console.error(url, error);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|