github.com/vmpartner/bitmex@v1.1.0/rest/rest.go (about) 1 package rest 2 3 import ( 4 "context" 5 "github.com/vmpartner/bitmex/swagger" 6 "net/http" 7 ) 8 9 func MakeContext(key string, secret string, host string, timeout int64) context.Context { 10 return context.WithValue(context.TODO(), swagger.ContextAPIKey, swagger.APIKey{ 11 Key: key, 12 Secret: secret, 13 Host: host, 14 Timeout: timeout, 15 }) 16 } 17 18 func GetClient(ctx context.Context) *swagger.APIClient { 19 c := ctx.Value(swagger.ContextAPIKey).(swagger.APIKey) 20 cfg := &swagger.Configuration{ 21 BasePath: "https://" + c.Host + "/api/v1", 22 DefaultHeader: make(map[string]string), 23 UserAgent: "Swagger-Codegen/1.0.0/go", 24 ExpireTime: 5, //seconds 25 } 26 27 return swagger.NewAPIClient(cfg) 28 } 29 30 func NewOrder(ctx context.Context, params map[string]interface{}) (swagger.Order, *http.Response, error) { 31 client := GetClient(ctx) 32 order, response, err := client.OrderApi.OrderNew(ctx, "XBTUSD", params) 33 34 return order, response, err 35 } 36 37 func AmendOrder(ctx context.Context, params map[string]interface{}) (swagger.Order, *http.Response, error) { 38 client := GetClient(ctx) 39 order, response, err := client.OrderApi.OrderAmend(ctx, params) 40 41 return order, response, err 42 } 43 44 func GetOrder(ctx context.Context, params map[string]interface{}) ([]swagger.Order, *http.Response, error) { 45 client := GetClient(ctx) 46 orders, response, err := client.OrderApi.OrderGetOrders(ctx, params) 47 48 return orders, response, err 49 } 50 51 func GetPosition(ctx context.Context, params map[string]interface{}) ([]swagger.Position, *http.Response, error) { 52 client := GetClient(ctx) 53 positions, response, err := client.PositionApi.PositionGet(ctx, params) 54 55 return positions, response, err 56 } 57 58 func GetTrade(ctx context.Context, params map[string]interface{}) ([]swagger.Trade, *http.Response, error) { 59 client := GetClient(ctx) 60 positions, response, err := client.TradeApi.TradeGet(params) 61 62 return positions, response, err 63 } 64 65 func CancelOrder(ctx context.Context, params map[string]interface{}) ([]swagger.Order, *http.Response, error) { 66 client := GetClient(ctx) 67 orders, response, err := client.OrderApi.OrderCancel(ctx, params) 68 69 return orders, response, err 70 } 71 72 func GetWallet(ctx context.Context) (swagger.Wallet, *http.Response, error) { 73 params := map[string]interface{}{ 74 "currency": "", 75 } 76 client := GetClient(ctx) 77 wallet, response, err := client.UserApi.UserGetWallet(ctx, params) 78 79 return wallet, response, err 80 }