Added schema layout api to schemaService
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
This commit is contained in:
parent
60ed2afaa4
commit
3352bfd805
@ -1,13 +1,15 @@
|
||||
import {Injectable} from '@angular/core';
|
||||
import {Inject, Injectable, LOCALE_ID} from '@angular/core';
|
||||
import {HttpClient} from '@angular/common/http';
|
||||
import {AppConfig} from '../shared/app.config';
|
||||
import {Observable} from 'rxjs';
|
||||
import {Observable, of} from 'rxjs';
|
||||
import {catchError, switchMap} from 'rxjs/operators';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class SchemaService {
|
||||
constructor(private httpClient: HttpClient, private appConfig: AppConfig) {
|
||||
constructor(private httpClient: HttpClient, private appConfig: AppConfig,
|
||||
@Inject(LOCALE_ID) private locale) {
|
||||
}
|
||||
|
||||
ApiEndpoint() {
|
||||
@ -19,4 +21,23 @@ export class SchemaService {
|
||||
const encodedId = encodeURIComponent(id);
|
||||
return this.httpClient.get<any>(`${this.ApiEndpoint()}/api/v1/schema/${encodedId}`);
|
||||
}
|
||||
|
||||
public getSchemaLayout(schemaUrl: string, locale: string): Observable<any> {
|
||||
const encodedId = encodeURIComponent(schemaUrl);
|
||||
return this.httpClient.get<any>(`${this.ApiEndpoint()}/api/v1/schema/${encodedId}/layout/${locale}`);
|
||||
}
|
||||
|
||||
public getSchemaAndLayout(schemaUrl: string, locale: string = this.locale):
|
||||
Observable<{schemaJson: any, schemaLayout: any}> {
|
||||
return this.getSchema(schemaUrl).pipe(
|
||||
switchMap(
|
||||
schemaJson => this.getSchemaLayout(schemaUrl, locale)
|
||||
.pipe(catchError(err => {
|
||||
return of(undefined);
|
||||
})),
|
||||
(schemaJson, schemaLayout) => {
|
||||
return ({schemaJson, schemaLayout});
|
||||
}
|
||||
));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user