github.com/vmpartner/bitmex@v1.1.0/swagger/execution_api.go (about)

     1  /* 
     2   * BitMEX API
     3   *
     4   * ## REST API for the BitMEX Trading Platform  [View Changelog](/app/apiChangelog)    #### Getting Started   ##### Fetching Data  All REST endpoints are documented below. You can try out any query right from this interface.  Most table queries accept `count`, `start`, and `reverse` params. Set `reverse=true` to get rows newest-first.  Additional documentation regarding filters, timestamps, and authentication is available in [the main API documentation](https://www.bitmex.com/app/restAPI).  *All* table data is available via the [Websocket](/app/wsAPI). We highly recommend using the socket if you want to have the quickest possible data without being subject to ratelimits.  ##### Return Types  By default, all data is returned as JSON. Send `?_format=csv` to get CSV data or `?_format=xml` to get XML data.  ##### Trade Data Queries  *This is only a small subset of what is available, to get you started.*  Fill in the parameters and click the `Try it out!` button to try any of these queries.  * [Pricing Data](#!/Quote/Quote_get)  * [Trade Data](#!/Trade/Trade_get)  * [OrderBook Data](#!/OrderBook/OrderBook_getL2)  * [Settlement Data](#!/Settlement/Settlement_get)  * [Exchange Statistics](#!/Stats/Stats_history)  Every function of the BitMEX.com platform is exposed here and documented. Many more functions are available.  ##### Swagger Specification  [⇩ Download Swagger JSON](swagger.json)    ## All API Endpoints  Click to expand a section. 
     5   *
     6   * OpenAPI spec version: 1.2.0
     7   * Contact: support@bitmex.com
     8   * Generated by: https://github.com/swagger-api/swagger-codegen.git
     9   */
    10  
    11  package swagger
    12  
    13  import (
    14  	"net/url"
    15  	"net/http"
    16  	"strings"
    17  	"golang.org/x/net/context"
    18  	"time"
    19  	"encoding/json"
    20  )
    21  
    22  // Linger please
    23  var (
    24  	_ context.Context
    25  )
    26  
    27  type ExecutionApiService service
    28  
    29  /* ExecutionApiService Get all raw executions for your account.
    30   This returns all raw transactions, which includes order opening and cancelation, and order status changes. It can be quite noisy. More focused information is available at `/execution/tradeHistory`.  You may also use the `filter` param to target your query. Specify an array as a filter value, such as `{\"execType\": [\"Settlement\", \"Trade\"]}` to filter on multiple values.  See [the FIX Spec](http://www.onixs.biz/fix-dictionary/5.0.SP2/msgType_8_8.html) for explanations of these fields. 
    31   * @param ctx context.Context Authentication Context 
    32   @param optional (nil or map[string]interface{}) with one or more of:
    33       @param "symbol" (string) Instrument symbol. Send a bare series (e.g. XBU) to get data for the nearest expiring contract in that series.  You can also send a timeframe, e.g. `XBU:monthly`. Timeframes are `daily`, `weekly`, `monthly`, `quarterly`, and `biquarterly`.
    34       @param "filter" (string) Generic table filter. Send JSON key/value pairs, such as `{\"key\": \"value\"}`. You can key on individual fields, and do more advanced querying on timestamps. See the [Timestamp Docs](https://www.bitmex.com/app/restAPI#timestamp-filters) for more details.
    35       @param "columns" (string) Array of column names to fetch. If omitted, will return all columns.  Note that this method will always return item keys, even when not specified, so you may receive more columns that you expect.
    36       @param "count" (float32) Number of results to fetch.
    37       @param "start" (float32) Starting point for results.
    38       @param "reverse" (bool) If true, will sort results newest first.
    39       @param "startTime" (time.Time) Starting date filter for results.
    40       @param "endTime" (time.Time) Ending date filter for results.
    41   @return []Execution*/
    42  func (a *ExecutionApiService) ExecutionGet(ctx context.Context, localVarOptionals map[string]interface{}) ([]Execution, *http.Response, error) {
    43  	var (
    44  		localVarHttpMethod = strings.ToUpper("Get")
    45  		localVarPostBody   interface{}
    46  		localVarFileName   string
    47  		localVarFileBytes  []byte
    48  		successPayload     []Execution
    49  	)
    50  
    51  	// create path and map variables
    52  	localVarPath := a.client.cfg.BasePath + "/execution"
    53  
    54  	localVarHeaderParams := make(map[string]string)
    55  	localVarQueryParams := url.Values{}
    56  	localVarFormParams := url.Values{}
    57  
    58  	if err := typeCheckParameter(localVarOptionals["symbol"], "string", "symbol"); err != nil {
    59  		return successPayload, nil, err
    60  	}
    61  	if err := typeCheckParameter(localVarOptionals["filter"], "string", "filter"); err != nil {
    62  		return successPayload, nil, err
    63  	}
    64  	if err := typeCheckParameter(localVarOptionals["columns"], "string", "columns"); err != nil {
    65  		return successPayload, nil, err
    66  	}
    67  	if err := typeCheckParameter(localVarOptionals["count"], "float32", "count"); err != nil {
    68  		return successPayload, nil, err
    69  	}
    70  	if err := typeCheckParameter(localVarOptionals["start"], "float32", "start"); err != nil {
    71  		return successPayload, nil, err
    72  	}
    73  	if err := typeCheckParameter(localVarOptionals["reverse"], "bool", "reverse"); err != nil {
    74  		return successPayload, nil, err
    75  	}
    76  	if err := typeCheckParameter(localVarOptionals["startTime"], "time.Time", "startTime"); err != nil {
    77  		return successPayload, nil, err
    78  	}
    79  	if err := typeCheckParameter(localVarOptionals["endTime"], "time.Time", "endTime"); err != nil {
    80  		return successPayload, nil, err
    81  	}
    82  
    83  	if localVarTempParam, localVarOk := localVarOptionals["symbol"].(string); localVarOk {
    84  		localVarQueryParams.Add("symbol", parameterToString(localVarTempParam, ""))
    85  	}
    86  	if localVarTempParam, localVarOk := localVarOptionals["filter"].(string); localVarOk {
    87  		localVarQueryParams.Add("filter", parameterToString(localVarTempParam, ""))
    88  	}
    89  	if localVarTempParam, localVarOk := localVarOptionals["columns"].(string); localVarOk {
    90  		localVarQueryParams.Add("columns", parameterToString(localVarTempParam, ""))
    91  	}
    92  	if localVarTempParam, localVarOk := localVarOptionals["count"].(float32); localVarOk {
    93  		localVarQueryParams.Add("count", parameterToString(localVarTempParam, ""))
    94  	}
    95  	if localVarTempParam, localVarOk := localVarOptionals["start"].(float32); localVarOk {
    96  		localVarQueryParams.Add("start", parameterToString(localVarTempParam, ""))
    97  	}
    98  	if localVarTempParam, localVarOk := localVarOptionals["reverse"].(bool); localVarOk {
    99  		localVarQueryParams.Add("reverse", parameterToString(localVarTempParam, ""))
   100  	}
   101  	if localVarTempParam, localVarOk := localVarOptionals["startTime"].(time.Time); localVarOk {
   102  		localVarQueryParams.Add("startTime", parameterToString(localVarTempParam, ""))
   103  	}
   104  	if localVarTempParam, localVarOk := localVarOptionals["endTime"].(time.Time); localVarOk {
   105  		localVarQueryParams.Add("endTime", parameterToString(localVarTempParam, ""))
   106  	}
   107  	// to determine the Content-Type header
   108  	localVarHttpContentTypes := []string{"application/json", "application/x-www-form-urlencoded",}
   109  
   110  	// set Content-Type header
   111  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   112  	if localVarHttpContentType != "" {
   113  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   114  	}
   115  
   116  	// to determine the Accept header
   117  	localVarHttpHeaderAccepts := []string{
   118  		"application/json",
   119  		"application/xml",
   120  		"text/xml",
   121  		"application/javascript",
   122  		"text/javascript",
   123  	}
   124  
   125  	// set Accept header
   126  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   127  	if localVarHttpHeaderAccept != "" {
   128  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   129  	}
   130  	if ctx != nil {
   131  		// API Key Authentication
   132  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
   133  			var key string
   134  			if auth.Prefix != "" {
   135  				key = auth.Prefix + " " + auth.Key
   136  			} else {
   137  				key = auth.Key
   138  			}
   139  			localVarHeaderParams["api-key"] = key
   140  		}
   141  	}
   142  	if ctx != nil {
   143  		// API Key Authentication
   144  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
   145  			var key string
   146  			if auth.Prefix != "" {
   147  				key = auth.Prefix + " " + auth.Key
   148  			} else {
   149  				key = auth.Key
   150  			}
   151  			localVarHeaderParams["api-nonce"] = key
   152  		}
   153  	}
   154  	if ctx != nil {
   155  		// API Key Authentication
   156  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
   157  			var key string
   158  			if auth.Prefix != "" {
   159  				key = auth.Prefix + " " + auth.Key
   160  			} else {
   161  				key = auth.Key
   162  			}
   163  			localVarHeaderParams["api-signature"] = key
   164  		}
   165  	}
   166  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   167  	if err != nil {
   168  		return successPayload, nil, err
   169  	}
   170  
   171  	localVarHttpResponse, err := a.client.callAPI(r)
   172  	if err != nil || localVarHttpResponse == nil {
   173  		return successPayload, localVarHttpResponse, err
   174  	}
   175  	defer localVarHttpResponse.Body.Close()
   176  	if localVarHttpResponse.StatusCode >= 300 {
   177  		return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status)
   178  	}
   179  
   180  	if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil {
   181  		return successPayload, localVarHttpResponse, err
   182  	}
   183  
   184  	return successPayload, localVarHttpResponse, err
   185  }
   186  
   187  /* ExecutionApiService Get all balance-affecting executions. This includes each trade, insurance charge, and settlement.
   188   * @param ctx context.Context Authentication Context 
   189   @param optional (nil or map[string]interface{}) with one or more of:
   190       @param "symbol" (string) Instrument symbol. Send a bare series (e.g. XBU) to get data for the nearest expiring contract in that series.  You can also send a timeframe, e.g. `XBU:monthly`. Timeframes are `daily`, `weekly`, `monthly`, `quarterly`, and `biquarterly`.
   191       @param "filter" (string) Generic table filter. Send JSON key/value pairs, such as `{\"key\": \"value\"}`. You can key on individual fields, and do more advanced querying on timestamps. See the [Timestamp Docs](https://www.bitmex.com/app/restAPI#timestamp-filters) for more details.
   192       @param "columns" (string) Array of column names to fetch. If omitted, will return all columns.  Note that this method will always return item keys, even when not specified, so you may receive more columns that you expect.
   193       @param "count" (float32) Number of results to fetch.
   194       @param "start" (float32) Starting point for results.
   195       @param "reverse" (bool) If true, will sort results newest first.
   196       @param "startTime" (time.Time) Starting date filter for results.
   197       @param "endTime" (time.Time) Ending date filter for results.
   198   @return []Execution*/
   199  func (a *ExecutionApiService) ExecutionGetTradeHistory(ctx context.Context, localVarOptionals map[string]interface{}) ([]Execution, *http.Response, error) {
   200  	var (
   201  		localVarHttpMethod = strings.ToUpper("Get")
   202  		localVarPostBody   interface{}
   203  		localVarFileName   string
   204  		localVarFileBytes  []byte
   205  		successPayload     []Execution
   206  	)
   207  
   208  	// create path and map variables
   209  	localVarPath := a.client.cfg.BasePath + "/execution/tradeHistory"
   210  
   211  	localVarHeaderParams := make(map[string]string)
   212  	localVarQueryParams := url.Values{}
   213  	localVarFormParams := url.Values{}
   214  
   215  	if err := typeCheckParameter(localVarOptionals["symbol"], "string", "symbol"); err != nil {
   216  		return successPayload, nil, err
   217  	}
   218  	if err := typeCheckParameter(localVarOptionals["filter"], "string", "filter"); err != nil {
   219  		return successPayload, nil, err
   220  	}
   221  	if err := typeCheckParameter(localVarOptionals["columns"], "string", "columns"); err != nil {
   222  		return successPayload, nil, err
   223  	}
   224  	if err := typeCheckParameter(localVarOptionals["count"], "float32", "count"); err != nil {
   225  		return successPayload, nil, err
   226  	}
   227  	if err := typeCheckParameter(localVarOptionals["start"], "float32", "start"); err != nil {
   228  		return successPayload, nil, err
   229  	}
   230  	if err := typeCheckParameter(localVarOptionals["reverse"], "bool", "reverse"); err != nil {
   231  		return successPayload, nil, err
   232  	}
   233  	if err := typeCheckParameter(localVarOptionals["startTime"], "time.Time", "startTime"); err != nil {
   234  		return successPayload, nil, err
   235  	}
   236  	if err := typeCheckParameter(localVarOptionals["endTime"], "time.Time", "endTime"); err != nil {
   237  		return successPayload, nil, err
   238  	}
   239  
   240  	if localVarTempParam, localVarOk := localVarOptionals["symbol"].(string); localVarOk {
   241  		localVarQueryParams.Add("symbol", parameterToString(localVarTempParam, ""))
   242  	}
   243  	if localVarTempParam, localVarOk := localVarOptionals["filter"].(string); localVarOk {
   244  		localVarQueryParams.Add("filter", parameterToString(localVarTempParam, ""))
   245  	}
   246  	if localVarTempParam, localVarOk := localVarOptionals["columns"].(string); localVarOk {
   247  		localVarQueryParams.Add("columns", parameterToString(localVarTempParam, ""))
   248  	}
   249  	if localVarTempParam, localVarOk := localVarOptionals["count"].(float32); localVarOk {
   250  		localVarQueryParams.Add("count", parameterToString(localVarTempParam, ""))
   251  	}
   252  	if localVarTempParam, localVarOk := localVarOptionals["start"].(float32); localVarOk {
   253  		localVarQueryParams.Add("start", parameterToString(localVarTempParam, ""))
   254  	}
   255  	if localVarTempParam, localVarOk := localVarOptionals["reverse"].(bool); localVarOk {
   256  		localVarQueryParams.Add("reverse", parameterToString(localVarTempParam, ""))
   257  	}
   258  	if localVarTempParam, localVarOk := localVarOptionals["startTime"].(time.Time); localVarOk {
   259  		localVarQueryParams.Add("startTime", parameterToString(localVarTempParam, ""))
   260  	}
   261  	if localVarTempParam, localVarOk := localVarOptionals["endTime"].(time.Time); localVarOk {
   262  		localVarQueryParams.Add("endTime", parameterToString(localVarTempParam, ""))
   263  	}
   264  	// to determine the Content-Type header
   265  	localVarHttpContentTypes := []string{"application/json", "application/x-www-form-urlencoded",}
   266  
   267  	// set Content-Type header
   268  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   269  	if localVarHttpContentType != "" {
   270  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   271  	}
   272  
   273  	// to determine the Accept header
   274  	localVarHttpHeaderAccepts := []string{
   275  		"application/json",
   276  		"application/xml",
   277  		"text/xml",
   278  		"application/javascript",
   279  		"text/javascript",
   280  	}
   281  
   282  	// set Accept header
   283  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   284  	if localVarHttpHeaderAccept != "" {
   285  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   286  	}
   287  	if ctx != nil {
   288  		// API Key Authentication
   289  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
   290  			var key string
   291  			if auth.Prefix != "" {
   292  				key = auth.Prefix + " " + auth.Key
   293  			} else {
   294  				key = auth.Key
   295  			}
   296  			localVarHeaderParams["api-key"] = key
   297  		}
   298  	}
   299  	if ctx != nil {
   300  		// API Key Authentication
   301  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
   302  			var key string
   303  			if auth.Prefix != "" {
   304  				key = auth.Prefix + " " + auth.Key
   305  			} else {
   306  				key = auth.Key
   307  			}
   308  			localVarHeaderParams["api-nonce"] = key
   309  		}
   310  	}
   311  	if ctx != nil {
   312  		// API Key Authentication
   313  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
   314  			var key string
   315  			if auth.Prefix != "" {
   316  				key = auth.Prefix + " " + auth.Key
   317  			} else {
   318  				key = auth.Key
   319  			}
   320  			localVarHeaderParams["api-signature"] = key
   321  		}
   322  	}
   323  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   324  	if err != nil {
   325  		return successPayload, nil, err
   326  	}
   327  
   328  	localVarHttpResponse, err := a.client.callAPI(r)
   329  	if err != nil || localVarHttpResponse == nil {
   330  		return successPayload, localVarHttpResponse, err
   331  	}
   332  	defer localVarHttpResponse.Body.Close()
   333  	if localVarHttpResponse.StatusCode >= 300 {
   334  		return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status)
   335  	}
   336  
   337  	if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil {
   338  		return successPayload, localVarHttpResponse, err
   339  	}
   340  
   341  	return successPayload, localVarHttpResponse, err
   342  }