import {Inject, Injectable} from '@angular/core';
import { Location,PathLocationStrategy,LocationStrategy } from '@angular/common';
import { HttpClient, HttpXhrBackend } from '@angular/common/http';
import {Observable} from 'rxjs';

@Injectable()
export class AppConfig {

  private config: Object = null;
  private httpClient: HttpClient;

  constructor(xhrBackend: HttpXhrBackend,private location:Location) {
    this.httpClient = new HttpClient(xhrBackend);
    this.config = null;
  }

  public getConfig(key: any) {
    if (!this.config.hasOwnProperty(key)) {
      console.error(`Config key ${key} not set`);
    }
    return this.config[key];
  }

  public load(): Promise<any> {
    const url = this.location.prepareExternalUrl('/configuration.json');
    return this.httpClient.get(url)
      .toPromise()
      .then(data => {
        this.config = data;
        //return data;
      })
      .catch(error => this.config = null);
  }
}
