#!/usr/bin/env ruby
# SPDX-License-Identifier: MulanPSL-2.0+
# Copyright (c) 2020 Huawei Technologies Co., Ltd. All rights reserved.
# frozen_string_literal: true

# How to use:
#   cmd: t-show

require_relative '../src/lib/service_logs/service_logs'
require_relative '../lib/stderr_show.rb'
require 'terminal-table'
require 'json'

class TerminalShow
  def initialize
    @head = []
    @rows = []
  end

  def init
    begin
      response = JSON.parse(Serviceslogs.new.active_service_logs)
    rescue StandardError => e
      e.message
    end

    @head = ['index'].concat(response['cols'])
    index = 1
    response['data'].each do |item|
      msg = handle_long_str(item['error_message'], 100)
      @rows << [index, item['first_date'], item['service'], item['count'], item['handler'], msg]
      index += 1
    end
  end

  def show_table
    Terminal::Table::Style.defaults = { border: :unicode_round }
    table = Terminal::Table.new do |t|
      t.title = 'Compass-ci Services'
      t.headings = @head
      t.rows = @rows
      t.style = { all_separators: true }
    end
    puts table
  end
end

t = TerminalShow.new
t.init
t.show_table
