Browse Source

possible api.coinpaprika.com and api.coingecko.com

master
yuriy0803 2 years ago
parent
commit
a85ede2ac9
  1. 18
      exchange/exchange.go

18
exchange/exchange.go

@ -37,6 +37,8 @@ type RestClient struct {
client *http.Client client *http.Client
} }
type ExchangeReply1 map[string]interface{}
type ExchangeReply []map[string]interface{} type ExchangeReply []map[string]interface{}
func NewRestClient(name, url, timeout string) *RestClient { func NewRestClient(name, url, timeout string) *RestClient {
@ -54,9 +56,23 @@ func (r *RestClient) GetData() (ExchangeReply, error) {
return nil, err return nil, err
} }
// Attempt to interpret the response as a slice of maps
var data ExchangeReply var data ExchangeReply
err = json.Unmarshal(resp, &data) err = json.Unmarshal(resp, &data)
return data, err if err == nil {
return data, nil
}
// If interpreting as a slice of maps fails, try to interpret it as a single map
var dataSingle ExchangeReply1
err = json.Unmarshal(resp, &dataSingle)
if err == nil {
// Convert the single map into a slice of maps with only one entry
data = ExchangeReply{dataSingle}
return data, nil
}
return nil, err
} }
func StartExchangeProcessor(cfg *ExchangeConfig, backend *storage.RedisClient) *ExchangeProcessor { func StartExchangeProcessor(cfg *ExchangeConfig, backend *storage.RedisClient) *ExchangeProcessor {

Loading…
Cancel
Save