diff --git a/pkg/exchange/ftx/ftxapi/cancel_order_by_client_order_id_request_requestgen.go b/pkg/exchange/ftx/ftxapi/cancel_order_by_client_order_id_request_requestgen.go new file mode 100644 index 000000000..23cb4bab3 --- /dev/null +++ b/pkg/exchange/ftx/ftxapi/cancel_order_by_client_order_id_request_requestgen.go @@ -0,0 +1,133 @@ +// Code generated by "requestgen -method DELETE -url /api/orders/by_client_id/:clientOrderId -type CancelOrderByClientOrderIdRequest -responseType .APIResponse"; DO NOT EDIT. + +package ftxapi + +import ( + "context" + "encoding/json" + "fmt" + "net/url" + "regexp" +) + +func (c *CancelOrderByClientOrderIdRequest) ClientOrderId(clientOrderId string) *CancelOrderByClientOrderIdRequest { + c.clientOrderId = clientOrderId + return c +} + +// GetQueryParameters builds and checks the query parameters and returns url.Values +func (c *CancelOrderByClientOrderIdRequest) GetQueryParameters() (url.Values, error) { + var params = map[string]interface{}{} + + query := url.Values{} + for k, v := range params { + query.Add(k, fmt.Sprintf("%v", v)) + } + + return query, nil +} + +// GetParameters builds and checks the parameters and return the result in a map object +func (c *CancelOrderByClientOrderIdRequest) GetParameters() (map[string]interface{}, error) { + var params = map[string]interface{}{} + + return params, nil +} + +// GetParametersQuery converts the parameters from GetParameters into the url.Values format +func (c *CancelOrderByClientOrderIdRequest) GetParametersQuery() (url.Values, error) { + query := url.Values{} + + params, err := c.GetParameters() + if err != nil { + return query, err + } + + for k, v := range params { + query.Add(k, fmt.Sprintf("%v", v)) + } + + return query, nil +} + +// GetParametersJSON converts the parameters from GetParameters into the JSON format +func (c *CancelOrderByClientOrderIdRequest) GetParametersJSON() ([]byte, error) { + params, err := c.GetParameters() + if err != nil { + return nil, err + } + + return json.Marshal(params) +} + +// GetSlugParameters builds and checks the slug parameters and return the result in a map object +func (c *CancelOrderByClientOrderIdRequest) GetSlugParameters() (map[string]interface{}, error) { + var params = map[string]interface{}{} + // check clientOrderId field -> json key clientOrderId + clientOrderId := c.clientOrderId + + // TEMPLATE check-required + if len(clientOrderId) == 0 { + return params, fmt.Errorf("clientOrderId is required, empty string given") + } + // END TEMPLATE check-required + + // assign parameter of clientOrderId + params["clientOrderId"] = clientOrderId + + return params, nil +} + +func (c *CancelOrderByClientOrderIdRequest) applySlugsToUrl(url string, slugs map[string]string) string { + for k, v := range slugs { + needleRE := regexp.MustCompile(":" + k + "\\b") + url = needleRE.ReplaceAllString(url, v) + } + + return url +} + +func (c *CancelOrderByClientOrderIdRequest) GetSlugsMap() (map[string]string, error) { + slugs := map[string]string{} + params, err := c.GetSlugParameters() + if err != nil { + return slugs, nil + } + + for k, v := range params { + slugs[k] = fmt.Sprintf("%v", v) + } + + return slugs, nil +} + +func (c *CancelOrderByClientOrderIdRequest) Do(ctx context.Context) (*APIResponse, error) { + + // no body params + var params interface{} + query := url.Values{} + + apiURL := "/api/orders/by_client_id/:clientOrderId" + slugs, err := c.GetSlugsMap() + if err != nil { + return nil, err + } + + apiURL = c.applySlugsToUrl(apiURL, slugs) + + req, err := c.client.NewAuthenticatedRequest(ctx, "DELETE", apiURL, query, params) + if err != nil { + return nil, err + } + + response, err := c.client.SendRequest(req) + if err != nil { + return nil, err + } + + var apiResponse APIResponse + if err := response.DecodeJSON(&apiResponse); err != nil { + return nil, err + } + return &apiResponse, nil +}