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) {} constructor(@Optional() @Inject('TIMEOUT_DURATION') private timeoutDuration: number = 5000) {}
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> { intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(req).pipe( // Überprüfen, ob die URL mit '/ai' endet
timeout(this.timeoutDuration), if (req.url.endsWith('/ai')) {
catchError((error: any) => { return next.handle(req).pipe(
if (error instanceof TimeoutError) { timeout(this.timeoutDuration),
// Timeout error handling catchError((error: any) => {
return throwError( if (error instanceof TimeoutError) {
() => // Timeout error handling
new HttpErrorResponse({ return throwError(
error: 'Request timed out', () =>
status: 408, // HTTP status code for Request Timeout new HttpErrorResponse({
}), error: 'Request timed out',
); status: 408, // HTTP status code for Request Timeout
} }),
return throwError(() => error); );
}), }
); 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 => { this.router.events.subscribe(event => {
if (event instanceof NavigationEnd) { if (event instanceof NavigationEnd) {
this.mode = event.url === '/createBusinessListing' ? 'create' : 'edit'; this.mode = event.url.startsWith('/createBusinessListing') ? 'create' : 'edit';
} }
}); });
this.route.data.subscribe(async () => { this.route.data.subscribe(async () => {

View File

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