import {Injectable} from '@angular/core';
import {HttpClient} from '@angular/common/http';
import {Observable} from 'rxjs';
import {Curator} from '../../utils/entities/CuratorInfo';
import {EnvProperties} from '../../utils/properties/env-properties';
import {CustomOptions} from "../../services/servicesUtils/customOptions.class";

@Injectable()
export class CuratorService {

  constructor(private http: HttpClient) {
  }

  public getCurators(properties: EnvProperties, communityId: string): Observable<Curator[]> {
    let url: string = properties.adminToolsAPIURL + '/' + communityId + '/curator';
    return this.http.get<Curator[]>((properties.useCache) ? (properties.cacheUrl + encodeURIComponent(url)) : url);
  }

  public updateCurator(properties: EnvProperties, curator: Curator) {
    let url: string = properties.adminToolsAPIURL + "curator";
    return this.http.post<Curator>(url, curator, CustomOptions.registryOptions());
  }

  public getCurator(properties: EnvProperties): Observable<Curator> {
    let url: string = properties.adminToolsAPIURL + 'curator';
    return this.http.get<Curator>((properties.useCache) ? (properties.cacheUrl + encodeURIComponent(url)) : url, CustomOptions.registryOptions());
  }

}
