import { Injectable } from '@angular/core'; import { Observable } from 'rxjs'; import { map, switchMap, } from 'rxjs/operators'; import { DspaceRestService } from '../core/dspace-rest/dspace-rest.service'; import { RawRestResponse } from '../core/dspace-rest/raw-rest-response.model'; import { HALEndpointService } from '../core/shared/hal-endpoint.service'; @Injectable({ providedIn: 'root', }) export class HealthService { constructor(protected halService: HALEndpointService, protected restService: DspaceRestService) { } /** * @returns health data */ getHealth(): Observable<RawRestResponse> { return this.halService.getEndpoint('/actuator').pipe( map((restURL: string) => restURL + '/health'), switchMap((endpoint: string) => this.restService.get(endpoint))); } /** * @returns information of server */ getInfo(): Observable<RawRestResponse> { return this.halService.getEndpoint('/actuator').pipe( map((restURL: string) => restURL + '/info'), switchMap((endpoint: string) => this.restService.get(endpoint))); } }