/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: BUSL-1.1
 */

import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
import { action } from '@ember/object';

export default class TopologyMetricsStats extends Component {
  @tracked stats = null;
  @tracked hasLoaded = false;

  @action
  statsUpdate(event) {
    if (this.args.endpoint == 'summary-for-service') {
      // For the main service there is just one set of stats.
      this.stats = event.data.stats;
    } else {
      // For up/downstreams we need to pull out the stats for the service we
      // represent.
      let nspace = this.args.nspace || '';
      if (nspace.length === 0) {
        nspace = 'default';
      }
      let entity = `${this.args.item}.${nspace}.${this.args.dc}`;
      this.stats = event.data.stats[entity];
    }
    // Limit to 4 metrics for now.
    this.stats = (this.stats || []).slice(0, 4);
    this.hasLoaded = true;
  }
}
