github.com/vmpartner/bitmex@v1.1.0/swagger/quote_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 QuoteApiService service
    28  
    29  /* QuoteApiService Get Quotes.
    30  
    31   @param optional (nil or map[string]interface{}) with one or more of:
    32       @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`.
    33       @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.
    34       @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.
    35       @param "count" (float32) Number of results to fetch.
    36       @param "start" (float32) Starting point for results.
    37       @param "reverse" (bool) If true, will sort results newest first.
    38       @param "startTime" (time.Time) Starting date filter for results.
    39       @param "endTime" (time.Time) Ending date filter for results.
    40   @return []Quote*/
    41  func (a *QuoteApiService) QuoteGet(localVarOptionals map[string]interface{}) ([]Quote, *http.Response, error) {
    42  	var (
    43  		localVarHttpMethod = strings.ToUpper("Get")
    44  		localVarPostBody   interface{}
    45  		localVarFileName   string
    46  		localVarFileBytes  []byte
    47  		successPayload     []Quote
    48  	)
    49  
    50  	// create path and map variables
    51  	localVarPath := a.client.cfg.BasePath + "/quote"
    52  
    53  	localVarHeaderParams := make(map[string]string)
    54  	localVarQueryParams := url.Values{}
    55  	localVarFormParams := url.Values{}
    56  
    57  	if err := typeCheckParameter(localVarOptionals["symbol"], "string", "symbol"); err != nil {
    58  		return successPayload, nil, err
    59  	}
    60  	if err := typeCheckParameter(localVarOptionals["filter"], "string", "filter"); err != nil {
    61  		return successPayload, nil, err
    62  	}
    63  	if err := typeCheckParameter(localVarOptionals["columns"], "string", "columns"); err != nil {
    64  		return successPayload, nil, err
    65  	}
    66  	if err := typeCheckParameter(localVarOptionals["count"], "float32", "count"); err != nil {
    67  		return successPayload, nil, err
    68  	}
    69  	if err := typeCheckParameter(localVarOptionals["start"], "float32", "start"); err != nil {
    70  		return successPayload, nil, err
    71  	}
    72  	if err := typeCheckParameter(localVarOptionals["reverse"], "bool", "reverse"); err != nil {
    73  		return successPayload, nil, err
    74  	}
    75  	if err := typeCheckParameter(localVarOptionals["startTime"], "time.Time", "startTime"); err != nil {
    76  		return successPayload, nil, err
    77  	}
    78  	if err := typeCheckParameter(localVarOptionals["endTime"], "time.Time", "endTime"); err != nil {
    79  		return successPayload, nil, err
    80  	}
    81  
    82  	if localVarTempParam, localVarOk := localVarOptionals["symbol"].(string); localVarOk {
    83  		localVarQueryParams.Add("symbol", parameterToString(localVarTempParam, ""))
    84  	}
    85  	if localVarTempParam, localVarOk := localVarOptionals["filter"].(string); localVarOk {
    86  		localVarQueryParams.Add("filter", parameterToString(localVarTempParam, ""))
    87  	}
    88  	if localVarTempParam, localVarOk := localVarOptionals["columns"].(string); localVarOk {
    89  		localVarQueryParams.Add("columns", parameterToString(localVarTempParam, ""))
    90  	}
    91  	if localVarTempParam, localVarOk := localVarOptionals["count"].(float32); localVarOk {
    92  		localVarQueryParams.Add("count", parameterToString(localVarTempParam, ""))
    93  	}
    94  	if localVarTempParam, localVarOk := localVarOptionals["start"].(float32); localVarOk {
    95  		localVarQueryParams.Add("start", parameterToString(localVarTempParam, ""))
    96  	}
    97  	if localVarTempParam, localVarOk := localVarOptionals["reverse"].(bool); localVarOk {
    98  		localVarQueryParams.Add("reverse", parameterToString(localVarTempParam, ""))
    99  	}
   100  	if localVarTempParam, localVarOk := localVarOptionals["startTime"].(time.Time); localVarOk {
   101  		localVarQueryParams.Add("startTime", parameterToString(localVarTempParam, ""))
   102  	}
   103  	if localVarTempParam, localVarOk := localVarOptionals["endTime"].(time.Time); localVarOk {
   104  		localVarQueryParams.Add("endTime", parameterToString(localVarTempParam, ""))
   105  	}
   106  	// to determine the Content-Type header
   107  	localVarHttpContentTypes := []string{"application/json", "application/x-www-form-urlencoded",}
   108  
   109  	// set Content-Type header
   110  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   111  	if localVarHttpContentType != "" {
   112  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   113  	}
   114  
   115  	// to determine the Accept header
   116  	localVarHttpHeaderAccepts := []string{
   117  		"application/json",
   118  		"application/xml",
   119  		"text/xml",
   120  		"application/javascript",
   121  		"text/javascript",
   122  	}
   123  
   124  	// set Accept header
   125  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   126  	if localVarHttpHeaderAccept != "" {
   127  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   128  	}
   129  	r, err := a.client.prepareRequest(nil, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   130  	if err != nil {
   131  		return successPayload, nil, err
   132  	}
   133  
   134  	localVarHttpResponse, err := a.client.callAPI(r)
   135  	if err != nil || localVarHttpResponse == nil {
   136  		return successPayload, localVarHttpResponse, err
   137  	}
   138  	defer localVarHttpResponse.Body.Close()
   139  	if localVarHttpResponse.StatusCode >= 300 {
   140  		return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status)
   141  	}
   142  
   143  	if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil {
   144  		return successPayload, localVarHttpResponse, err
   145  	}
   146  
   147  	return successPayload, localVarHttpResponse, err
   148  }
   149  
   150  /* QuoteApiService Get previous quotes in time buckets.
   151  
   152   @param optional (nil or map[string]interface{}) with one or more of:
   153       @param "binSize" (string) Time interval to bucket by. Available options: [1m,5m,1h,1d].
   154       @param "partial" (bool) If true, will send in-progress (incomplete) bins for the current time period.
   155       @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`.
   156       @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.
   157       @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.
   158       @param "count" (float32) Number of results to fetch.
   159       @param "start" (float32) Starting point for results.
   160       @param "reverse" (bool) If true, will sort results newest first.
   161       @param "startTime" (time.Time) Starting date filter for results.
   162       @param "endTime" (time.Time) Ending date filter for results.
   163   @return []Quote*/
   164  func (a *QuoteApiService) QuoteGetBucketed(localVarOptionals map[string]interface{}) ([]Quote, *http.Response, error) {
   165  	var (
   166  		localVarHttpMethod = strings.ToUpper("Get")
   167  		localVarPostBody   interface{}
   168  		localVarFileName   string
   169  		localVarFileBytes  []byte
   170  		successPayload     []Quote
   171  	)
   172  
   173  	// create path and map variables
   174  	localVarPath := a.client.cfg.BasePath + "/quote/bucketed"
   175  
   176  	localVarHeaderParams := make(map[string]string)
   177  	localVarQueryParams := url.Values{}
   178  	localVarFormParams := url.Values{}
   179  
   180  	if err := typeCheckParameter(localVarOptionals["binSize"], "string", "binSize"); err != nil {
   181  		return successPayload, nil, err
   182  	}
   183  	if err := typeCheckParameter(localVarOptionals["partial"], "bool", "partial"); err != nil {
   184  		return successPayload, nil, err
   185  	}
   186  	if err := typeCheckParameter(localVarOptionals["symbol"], "string", "symbol"); err != nil {
   187  		return successPayload, nil, err
   188  	}
   189  	if err := typeCheckParameter(localVarOptionals["filter"], "string", "filter"); err != nil {
   190  		return successPayload, nil, err
   191  	}
   192  	if err := typeCheckParameter(localVarOptionals["columns"], "string", "columns"); err != nil {
   193  		return successPayload, nil, err
   194  	}
   195  	if err := typeCheckParameter(localVarOptionals["count"], "float32", "count"); err != nil {
   196  		return successPayload, nil, err
   197  	}
   198  	if err := typeCheckParameter(localVarOptionals["start"], "float32", "start"); err != nil {
   199  		return successPayload, nil, err
   200  	}
   201  	if err := typeCheckParameter(localVarOptionals["reverse"], "bool", "reverse"); err != nil {
   202  		return successPayload, nil, err
   203  	}
   204  	if err := typeCheckParameter(localVarOptionals["startTime"], "time.Time", "startTime"); err != nil {
   205  		return successPayload, nil, err
   206  	}
   207  	if err := typeCheckParameter(localVarOptionals["endTime"], "time.Time", "endTime"); err != nil {
   208  		return successPayload, nil, err
   209  	}
   210  
   211  	if localVarTempParam, localVarOk := localVarOptionals["binSize"].(string); localVarOk {
   212  		localVarQueryParams.Add("binSize", parameterToString(localVarTempParam, ""))
   213  	}
   214  	if localVarTempParam, localVarOk := localVarOptionals["partial"].(bool); localVarOk {
   215  		localVarQueryParams.Add("partial", parameterToString(localVarTempParam, ""))
   216  	}
   217  	if localVarTempParam, localVarOk := localVarOptionals["symbol"].(string); localVarOk {
   218  		localVarQueryParams.Add("symbol", parameterToString(localVarTempParam, ""))
   219  	}
   220  	if localVarTempParam, localVarOk := localVarOptionals["filter"].(string); localVarOk {
   221  		localVarQueryParams.Add("filter", parameterToString(localVarTempParam, ""))
   222  	}
   223  	if localVarTempParam, localVarOk := localVarOptionals["columns"].(string); localVarOk {
   224  		localVarQueryParams.Add("columns", parameterToString(localVarTempParam, ""))
   225  	}
   226  	if localVarTempParam, localVarOk := localVarOptionals["count"].(float32); localVarOk {
   227  		localVarQueryParams.Add("count", parameterToString(localVarTempParam, ""))
   228  	}
   229  	if localVarTempParam, localVarOk := localVarOptionals["start"].(float32); localVarOk {
   230  		localVarQueryParams.Add("start", parameterToString(localVarTempParam, ""))
   231  	}
   232  	if localVarTempParam, localVarOk := localVarOptionals["reverse"].(bool); localVarOk {
   233  		localVarQueryParams.Add("reverse", parameterToString(localVarTempParam, ""))
   234  	}
   235  	if localVarTempParam, localVarOk := localVarOptionals["startTime"].(time.Time); localVarOk {
   236  		localVarQueryParams.Add("startTime", parameterToString(localVarTempParam, ""))
   237  	}
   238  	if localVarTempParam, localVarOk := localVarOptionals["endTime"].(time.Time); localVarOk {
   239  		localVarQueryParams.Add("endTime", parameterToString(localVarTempParam, ""))
   240  	}
   241  	// to determine the Content-Type header
   242  	localVarHttpContentTypes := []string{"application/json", "application/x-www-form-urlencoded",}
   243  
   244  	// set Content-Type header
   245  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   246  	if localVarHttpContentType != "" {
   247  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   248  	}
   249  
   250  	// to determine the Accept header
   251  	localVarHttpHeaderAccepts := []string{
   252  		"application/json",
   253  		"application/xml",
   254  		"text/xml",
   255  		"application/javascript",
   256  		"text/javascript",
   257  	}
   258  
   259  	// set Accept header
   260  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   261  	if localVarHttpHeaderAccept != "" {
   262  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   263  	}
   264  	r, err := a.client.prepareRequest(nil, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   265  	if err != nil {
   266  		return successPayload, nil, err
   267  	}
   268  
   269  	localVarHttpResponse, err := a.client.callAPI(r)
   270  	if err != nil || localVarHttpResponse == nil {
   271  		return successPayload, localVarHttpResponse, err
   272  	}
   273  	defer localVarHttpResponse.Body.Close()
   274  	if localVarHttpResponse.StatusCode >= 300 {
   275  		return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status)
   276  	}
   277  
   278  	if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil {
   279  		return successPayload, localVarHttpResponse, err
   280  	}
   281  
   282  	return successPayload, localVarHttpResponse, err
   283  }