2020-06-22 11:12:02 +00:00
|
|
|
import {Injectable} from '@angular/core';
|
|
|
|
import {HttpClient} from '@angular/common/http';
|
|
|
|
import {AppConfig} from '../shared/app.config';
|
|
|
|
import {Observable} from 'rxjs';
|
|
|
|
|
2020-06-22 11:37:38 +00:00
|
|
|
@Injectable({
|
|
|
|
providedIn: 'root',
|
|
|
|
})
|
2020-06-22 11:12:02 +00:00
|
|
|
export class SchemaService {
|
|
|
|
constructor(private httpClient: HttpClient, private appConfig: AppConfig) {
|
|
|
|
}
|
|
|
|
|
|
|
|
ApiEndpoint() {
|
|
|
|
return this.appConfig.getConfig('apiEndPoint');
|
|
|
|
}
|
|
|
|
|
|
|
|
public getSchemaIdFromSchemaUrl(schemaUrl): string {
|
|
|
|
const url = new URL(schemaUrl);
|
|
|
|
const pathSplit = url.pathname.split('/');
|
|
|
|
|
|
|
|
return pathSplit[pathSplit.length - 1].replace('.json', '');
|
|
|
|
}
|
|
|
|
|
|
|
|
public getSchemaWithUrl(schemaUrl): Observable<string> {
|
|
|
|
const id = this.getSchemaIdFromSchemaUrl(schemaUrl);
|
|
|
|
return this.httpClient.get<any>(`${this.ApiEndpoint()}/api/v1/schema/${id}`);
|
|
|
|
}
|
|
|
|
|
|
|
|
public getSchemaWithId(schemaId): Observable<string> {
|
|
|
|
return this.httpClient.get<any>(`${this.ApiEndpoint()}/api/v1/schema/${schemaId}`);
|
|
|
|
}
|
|
|
|
}
|