// property.interceptor.ts import { Injectable } from '@angular/core'; import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpResponse, } from '@angular/common/http'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; @Injectable() export class PropertyInterceptor implements HttpInterceptor { intercept( request: HttpRequest, next: HttpHandler ): Observable> { return next.handle(request).pipe( map((event) => { if (event instanceof HttpResponse && event.body) { let modifiedBody; if (event.body['hydra:member']) { modifiedBody = { ...event.body, 'hydra:member': this.mapDataItems( event.body['hydra:member'] ), }; } else { // Wenn keine 'hydra:member' vorhanden ist, betrachte das gesamte Objekt modifiedBody = this.mapDataItem(event.body); } return event.clone({ body: modifiedBody, }); } return event; }) ); } private mapDataItems(items: any[]): any[] { return items.map((item) => this.mapDataItem(item)); } private mapDataItem(item: any): any { if (item && item['@id']) { return { ...item, id: item['@id'], }; } return item; } }