mirror of
https://github.com/NoFxAiOS/nofx.git
synced 2026-07-18 09:54:35 +08:00
feat: init coinank openapi http request framework (#1240)
This commit is contained in:
62
provider/coinank/base_coin.go
Normal file
62
provider/coinank/base_coin.go
Normal file
@@ -0,0 +1,62 @@
|
||||
package coinank
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"nofx/provider/coinank/coinank_enum"
|
||||
)
|
||||
|
||||
// ListCoin list all support coin from coinank, response is list of coin symbol
|
||||
func (c *CoinankClient) ListCoin(ctx context.Context, productType coinank_enum.ProductType) (*[]string, error) {
|
||||
paramsMap := make(map[string]string, 1)
|
||||
paramsMap["productType"] = string(productType)
|
||||
resp, err := c.Get(ctx, "/api/baseCoin/list", paramsMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var result CoinankResponse[[]string]
|
||||
err = json.Unmarshal([]byte(resp), &result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = json.Unmarshal([]byte(resp), &result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !result.Success {
|
||||
return nil, HttpError
|
||||
}
|
||||
return &result.Data, nil
|
||||
}
|
||||
|
||||
// ListSymbols list all support symbols from coinank
|
||||
func (c *CoinankClient) ListSymbols(ctx context.Context, exchange coinank_enum.Exchange, productType coinank_enum.ProductType) (*[]SymbolResp, error) {
|
||||
paramsMap := make(map[string]string, 2)
|
||||
paramsMap["exchange"] = string(exchange)
|
||||
paramsMap["productType"] = string(productType)
|
||||
resp, err := c.Get(ctx, "/api/baseCoin/symbols", paramsMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var result CoinankResponse[[]SymbolResp]
|
||||
err = json.Unmarshal([]byte(resp), &result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = json.Unmarshal([]byte(resp), &result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !result.Success {
|
||||
return nil, HttpError
|
||||
}
|
||||
return &result.Data, nil
|
||||
}
|
||||
|
||||
type SymbolResp struct {
|
||||
Symbol string `json:"symbol"` // symbol,such as:`BTCUSDT`
|
||||
BaseCoin string `json:"baseCoin"` // baseCoin from symbol,such as `BTC`
|
||||
ExchangeName string `json:"exchangeName"` // symbol source ,such as:`Binance`
|
||||
ExpireAt int `json:"expireAt"`
|
||||
UpdateAt int `json:"updateAt"`
|
||||
}
|
||||
Reference in New Issue
Block a user