X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=api%2Fmarket_config.go;h=25e390d627811ad7c24136f195743e282f26d766;hb=50c6eea630c5bf6d1513d093125f11ce30deaff5;hp=d85af4de9e3c5f3a7e6f18c65d162ce130aa1d1e;hpb=908ee2dd22c85d5d850f62b1a9d0066b43b80a69;p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FCryptoportfolio%2FFront.git diff --git a/api/market_config.go b/api/market_config.go index d85af4d..25e390d 100644 --- a/api/market_config.go +++ b/api/market_config.go @@ -82,7 +82,7 @@ func (q MarketBalanceQuery) Run() (interface{}, *Error) { result := struct { Value decimal.Decimal `json:"value"` ValueCurrency string `json:"valueCurrency"` - Balance map[string]decimal.Decimal `json:"balance"` + Balance map[string]markets.Balance `json:"balance"` }{} resultErr := CallExternalService(fmt.Sprintf("'%s' GetBalanceValue", q.In.Market), EXTERNAL_SERVICE_TIMEOUT_SECONDS*time.Second, func() *Error { @@ -92,18 +92,23 @@ func (q MarketBalanceQuery) Run() (interface{}, *Error) { return &Error{InvalidMarketCredentials, "wrong market credentials", fmt.Errorf("wrong '%v' market credentials", q.In.Market)} } - if err != nil { - return NewInternalError(err) + if utils.ErrIs(err, markets.IPRestricted) { + return &Error{IPRestrictedApiKey, "ip restricted api key", fmt.Errorf("'%v' ip restricted", q.In.Market)} } - value, err := Poloniex.ComputeAccountBalanceValue(balance, q.In.Currency) if err != nil { return NewInternalError(err) } - result.Balance = balance - result.ValueCurrency = q.In.Currency - result.Value = value.Round(8) + for currency, value := range balance.Balances { + if value.BTCValue.Abs().LessThan(decimal.NewFromFloat(0.0001)) { + delete(balance.Balances, currency) + } + } + + result.Balance = balance.Balances + result.ValueCurrency = "BTC" + result.Value = balance.BTCValue.Round(8) return nil })