mirror of
https://github.com/NoFxAiOS/nofx.git
synced 2026-07-07 04:50:57 +08:00
51 lines
1.4 KiB
Go
51 lines
1.4 KiB
Go
package coinank_api
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"nofx/provider/coinank"
|
|
"nofx/provider/coinank/coinank_enum"
|
|
)
|
|
|
|
// BaseCoinSymbols get base coin from coinank free open api , all params is optional
|
|
func BaseCoinSymbols(ctx context.Context, exchangeName coinank_enum.Exchange, symbol string, baseCoin string) ([]BaseCoinResponse, error) {
|
|
paramsMap := make(map[string]string, 3)
|
|
if symbol != "" {
|
|
paramsMap["symbol"] = symbol
|
|
}
|
|
if baseCoin != "" {
|
|
paramsMap["baseCoin"] = baseCoin
|
|
}
|
|
if exchangeName != "" {
|
|
paramsMap["exchangeName"] = string(exchangeName)
|
|
}
|
|
resp, err := get(ctx, "/api/baseCoin/symbols/open", paramsMap)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
var result coinank.CoinankResponse[[]BaseCoinResponse]
|
|
err = json.Unmarshal([]byte(resp), &result)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if !result.Success {
|
|
return nil, coinank.HttpError
|
|
}
|
|
return result.Data, nil
|
|
}
|
|
|
|
type BaseCoinResponse struct {
|
|
Symbol string `json:"symbol"`
|
|
BaseCoin string `json:"baseCoin"`
|
|
ExchangeName string `json:"exchangeName"`
|
|
ProductType string `json:"productType"`
|
|
SymbolType string `json:"symbolType"`
|
|
PricePrecision string `json:"pricePrecision"`
|
|
DeliveryType string `json:"deliveryType"`
|
|
ExpireAt int `json:"expireAt"`
|
|
UpdateAt int `json:"updateAt"`
|
|
Hot bool `json:"hot"`
|
|
Price float64 `json:"price"`
|
|
PriceChangeH24 float64 `json:"priceChangeH24"`
|
|
}
|