package dbctrl

import (
	"database/sql"
	"validate/util"
)

type Configuration struct {
	Type     string
	Instance string
	Name     string
	Value    string
}

const ShowAllConfigurations = "SELECT type, INSTANCE, `KEY`, VALUE  from `INFORMATION_SCHEMA`.`CLUSTER_CONFIG` order by type,`KEY`;"

func GetConfigurationList(tx *sql.Tx) ([]*Configuration, error) {
	rows, err := tx.Query(ShowAllConfigurations)
	if err != nil {
		return nil, err
	}

	var configList []*Configuration
	for rows.Next() {
		config := &Configuration{}
		if err = rows.Scan(&config.Type, &config.Instance, &config.Name, &config.Value); err != nil {
			util.Logger.Fatalf(err.Error())
		}

		configList = append(configList, config)
	}

	return configList, nil
}
