github.com/wtfutil/wtf@v0.43.0/modules/cryptocurrency/bittrex/settings.go (about)

     1  package bittrex
     2  
     3  import (
     4  	"github.com/olebedev/config"
     5  	"github.com/wtfutil/wtf/cfg"
     6  )
     7  
     8  const (
     9  	defaultFocusable = false
    10  	defaultTitle     = "Bittrex"
    11  )
    12  
    13  type colors struct {
    14  	base struct {
    15  		name        string
    16  		displayName string
    17  	}
    18  	market struct {
    19  		name  string
    20  		field string
    21  		value string
    22  	}
    23  }
    24  
    25  type currency struct {
    26  	displayName string
    27  	market      []interface{}
    28  }
    29  
    30  type summary struct {
    31  	currencies map[string]*currency
    32  }
    33  
    34  type Settings struct {
    35  	*cfg.Common
    36  
    37  	colors
    38  	summary
    39  }
    40  
    41  func NewSettingsFromYAML(name string, ymlConfig *config.Config, globalConfig *config.Config) *Settings {
    42  
    43  	settings := Settings{
    44  		Common: cfg.NewCommonSettingsFromModule(name, defaultTitle, defaultFocusable, ymlConfig, globalConfig),
    45  	}
    46  
    47  	settings.colors.base.name = ymlConfig.UString("colors.base.name")
    48  	settings.colors.base.displayName = ymlConfig.UString("colors.base.displayName")
    49  
    50  	settings.colors.market.name = ymlConfig.UString("colors.market.name")
    51  	settings.colors.market.field = ymlConfig.UString("colors.market.field")
    52  	settings.colors.market.value = ymlConfig.UString("colors.market.value")
    53  
    54  	settings.summary.currencies = make(map[string]*currency)
    55  	for key, val := range ymlConfig.UMap("summary") {
    56  		coercedVal := val.(map[string]interface{})
    57  
    58  		currency := &currency{
    59  			displayName: coercedVal["displayName"].(string),
    60  			market:      coercedVal["market"].([]interface{}),
    61  		}
    62  
    63  		settings.summary.currencies[key] = currency
    64  	}
    65  
    66  	settings.SetDocumentationPath("cryptocurrencies/bittrex")
    67  
    68  	return &settings
    69  }