datasurvey/src/main/webapp/app/admin/configuration/configuration.service.ts

29 lines
1.1 KiB
TypeScript

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<Bean[]> {
return this.http.get<ConfigProps>(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<PropertySource[]> {
return this.http.get<Env>(this.applicationConfigService.getEndpointFor('management/env')).pipe(map(env => env.propertySources));
}
}