base

package
v0.0.0-...-2fd9363 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 27, 2021 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultTimeOut = time.Second * 15

DefaultTimeOut is the default timeout for foreign exchange providers

Variables

This section is empty.

Functions

This section is empty.

Types

type Base

type Base struct {
	Settings `json:"settings"`
}

Base enforces standard variables across the provider packages

func (*Base) GetName

func (b *Base) GetName() string

GetName returns name of provider

func (*Base) IsEnabled

func (b *Base) IsEnabled() bool

IsEnabled returns true if enabled

func (*Base) IsPrimaryProvider

func (b *Base) IsPrimaryProvider() bool

IsPrimaryProvider returns true if primary provider

type FXHandler

type FXHandler struct {
	Primary Provider
	Support []Provider
	// contains filtered or unexported fields
}

FXHandler defines a full suite of FX data providers with failure backup with unsupported currency shunt procedure

func (*FXHandler) GetCurrencyData

func (f *FXHandler) GetCurrencyData(baseCurrency string, currencies []string) (map[string]float64, error)

GetCurrencyData returns currency data from enabled FX providers

type IFXProvider

type IFXProvider interface {
	Setup(config Settings) error
	GetRates(baseCurrency, symbols string) (map[string]float64, error)
	GetName() string
	IsEnabled() bool
	IsPrimaryProvider() bool
	GetSupportedCurrencies() ([]string, error)
}

IFXProvider enforces standard functions for all foreign exchange providers supported in TradePoint

type Provider

type Provider struct {
	Provider            IFXProvider
	SupportedCurrencies []string
}

Provider defines a singular foreign exchange provider with its supported currencies to cross reference request currencies and if not supported shunt request traffic to and from other providers so that we can maintain full currency list integration

func (Provider) CheckCurrencies

func (p Provider) CheckCurrencies(currencies []string) []string

CheckCurrencies cross references supplied currencies with exchange supported currencies, if there are any currencies not supported it returns a list to pass on to the next provider

func (*Provider) GetNewRate

func (p *Provider) GetNewRate(base string, currencies []string) (map[string]float64, error)

GetNewRate access rates by predetermined logic based on how a provider handles requests

type Settings

type Settings struct {
	Name             string        `json:"name"`
	Enabled          bool          `json:"enabled"`
	Verbose          bool          `json:"verbose"`
	RESTPollingDelay time.Duration `json:"restPollingDelay"`
	APIKey           string        `json:"apiKey"`
	APIKeyLvl        int           `json:"apiKeyLvl"`
	PrimaryProvider  bool          `json:"primaryProvider"`
}

Settings enforces standard variables across the provider packages

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL