import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; import { ApplicationConfigService } from 'app/core/config/application-config.service'; import { Bean, Beans, ConfigProps, Env, PropertySource } from './configuration.model'; @Injectable({ providedIn: 'root' }) export class ConfigurationService { constructor(private http: HttpClient, private applicationConfigService: ApplicationConfigService) {} getBeans(): Observable { return this.http.get(this.applicationConfigService.getEndpointFor('management/configprops')).pipe( map(configProps => Object.values( Object.values(configProps.contexts) .map(context => context.beans) .reduce((allBeans: Beans, contextBeans: Beans) => ({ ...allBeans, ...contextBeans })) ) ) ); } getPropertySources(): Observable { return this.http.get(this.applicationConfigService.getEndpointFor('management/env')).pipe(map(env => env.propertySources)); } }