github.com/SimplyVC/oasis_api_server/src@v0.0.0-20220105202803-ad2c5a67840e/config/config.go (about)

     1  package config
     2  
     3  import (
     4  	"github.com/claudetech/ini"
     5  
     6  	lgr "github.com/SimplyVC/oasis_api_server/src/logger"
     7  )
     8  
     9  // Variables to be exported and used by application, set with default values
    10  var (
    11  	confMain       ini.Config
    12  	confNodes      ini.Config
    13  	confSentry     ini.Config
    14  	mainConfigFile = "../config/user_config_main.ini"
    15  	nodesFile      = "../config/user_config_nodes.ini"
    16  	sentryFile     = "../config/user_config_sentry.ini"
    17  )
    18  
    19  // SetSentryFile sets file location containing sentry data
    20  func SetSentryFile(newFile string) {
    21  	sentryFile = newFile
    22  }
    23  
    24  // SetMainFile sets file location containing API configuration
    25  func SetMainFile(newFile string) {
    26  	mainConfigFile = newFile
    27  }
    28  
    29  // SetNodesFile sets file location containing Node configuration
    30  func SetNodesFile(newFile string) {
    31  	nodesFile = newFile
    32  }
    33  
    34  // GetSentryData returns Sentry configuration
    35  func GetSentryData() map[string]map[string]string {
    36  	return confSentry
    37  }
    38  
    39  // GetMain returns Main API configuration
    40  func GetMain() map[string]map[string]string {
    41  	return confMain
    42  }
    43  
    44  // GetNodes returns Nodes configuration
    45  func GetNodes() map[string]map[string]string {
    46  	return confNodes
    47  }
    48  
    49  // LoadMainConfiguration loads main configuration file from config folder
    50  func LoadMainConfiguration() (map[string]map[string]string, error) {
    51  
    52  	// Decode and read file containing Main API information
    53  	if err := ini.DecodeFile(mainConfigFile, &confMain); err != nil {
    54  		lgr.Error.Println(err)
    55  		return nil, err
    56  	}
    57  	return confMain, nil
    58  }
    59  
    60  // LoadNodesConfiguration loads node configuration file from config folder
    61  func LoadNodesConfiguration() (map[string]map[string]string, error) {
    62  
    63  	// Decode and read file containing Node information
    64  	if err := ini.DecodeFile(nodesFile, &confNodes); err != nil {
    65  		lgr.Error.Println(err)
    66  		return nil, err
    67  	}
    68  	return confNodes, nil
    69  }
    70  
    71  // LoadSentryConfiguration loads sentry configuration details
    72  func LoadSentryConfiguration() (map[string]map[string]string, error) {
    73  
    74  	// Decode and read file containing sentry information
    75  	if err := ini.DecodeFile(sentryFile, &confSentry); err != nil {
    76  		lgr.Error.Println(err)
    77  		return nil, err
    78  	}
    79  	return confSentry, nil
    80  }