Timeout nur für /ai Calls, URL compare change

This commit is contained in:
Andreas Knuth 2024-09-11 12:26:28 +02:00
parent fe759f953f
commit 8a7e26d2b6
3 changed files with 24 additions and 18 deletions

View File

@ -8,21 +8,27 @@ export class TimeoutInterceptor implements HttpInterceptor {
constructor(@Optional() @Inject('TIMEOUT_DURATION') private timeoutDuration: number = 5000) {}
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(req).pipe(
timeout(this.timeoutDuration),
catchError((error: any) => {
if (error instanceof TimeoutError) {
// Timeout error handling
return throwError(
() =>
new HttpErrorResponse({
error: 'Request timed out',
status: 408, // HTTP status code for Request Timeout
}),
);
}
return throwError(() => error);
}),
);
// Überprüfen, ob die URL mit '/ai' endet
if (req.url.endsWith('/ai')) {
return next.handle(req).pipe(
timeout(this.timeoutDuration),
catchError((error: any) => {
if (error instanceof TimeoutError) {
// Timeout error handling
return throwError(
() =>
new HttpErrorResponse({
error: 'Request timed out',
status: 408, // HTTP status code for Request Timeout
}),
);
}
return throwError(() => error);
}),
);
}
// Für alle anderen URLs ohne Timeout fortfahren
return next.handle(req);
}
}

View File

@ -90,7 +90,7 @@ export class EditBusinessListingComponent {
) {
this.router.events.subscribe(event => {
if (event instanceof NavigationEnd) {
this.mode = event.url === '/createBusinessListing' ? 'create' : 'edit';
this.mode = event.url.startsWith('/createBusinessListing') ? 'create' : 'edit';
}
});
this.route.data.subscribe(async () => {

View File

@ -132,7 +132,7 @@ export class EditCommercialPropertyListingComponent {
// Abonniere Router-Events, um den aktiven Link zu ermitteln
this.router.events.subscribe(event => {
if (event instanceof NavigationEnd) {
this.mode = event.url === '/createCommercialPropertyListing' ? 'create' : 'edit';
this.mode = event.url.startsWith('/createCommercialPropertyListing') ? 'create' : 'edit';
}
});
this.route.data.subscribe(async () => {