import { Component, OnInit } from '@angular/core';
import {ExternalComponentStatus} from "../shared/models/externalComponentStatus";
import {HealthStatusService} from "../shared/server/healthStatusService/health-status.service";

@Component({
  selector: 'app-health-status',
  templateUrl: './health-status.component.html',
  styleUrls: ['./health-status.component.scss']
})
export class HealthStatusComponent implements OnInit {
  componentStatuses: Array<ExternalComponentStatus> = [];
  dataIsReady: boolean;
  lastUpdatedDate: Date;

  constructor(private _healthStatusService: HealthStatusService) {
  }


  ngOnInit() {
    this.refreshData();
  }

  refreshData(): void {
    this.dataIsReady = false;
    this._healthStatusService.getProbe()
      .subscribe((res: Array<ExternalComponentStatus>) => {
        this.componentStatuses = res;
        this.dataIsReady = true;
        this.lastUpdatedDate = new Date();
      })
  }

  getMetadata(status : ExternalComponentStatus):string {
    let metadata = status.metadata;
    delete metadata.rawData;
    return metadata;
  }

  isAvailable(componentStatus: ExternalComponentStatus) {
    return componentStatus.available;
  }
}