From 50c6eea630c5bf6d1513d093125f11ce30deaff5 Mon Sep 17 00:00:00 2001 From: jloup Date: Mon, 26 Mar 2018 10:55:17 +0200 Subject: Display short positions. --- api/market_config.go | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'api/market_config.go') 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 }) -- cgit v1.2.3