github.com/vmpartner/bitmex@v1.1.0/swagger/chat_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  	"encoding/json"
    19  )
    20  
    21  // Linger please
    22  var (
    23  	_ context.Context
    24  )
    25  
    26  type ChatApiService service
    27  
    28  /* ChatApiService Get chat messages.
    29  
    30   @param optional (nil or map[string]interface{}) with one or more of:
    31       @param "count" (float32) Number of results to fetch.
    32       @param "start" (float32) Starting ID for results.
    33       @param "reverse" (bool) If true, will sort results newest first.
    34       @param "channelID" (float64) Channel id. GET /chat/channels for ids. Leave blank for all.
    35   @return []Chat*/
    36  func (a *ChatApiService) ChatGet(localVarOptionals map[string]interface{}) ([]Chat, *http.Response, error) {
    37  	var (
    38  		localVarHttpMethod = strings.ToUpper("Get")
    39  		localVarPostBody   interface{}
    40  		localVarFileName   string
    41  		localVarFileBytes  []byte
    42  		successPayload     []Chat
    43  	)
    44  
    45  	// create path and map variables
    46  	localVarPath := a.client.cfg.BasePath + "/chat"
    47  
    48  	localVarHeaderParams := make(map[string]string)
    49  	localVarQueryParams := url.Values{}
    50  	localVarFormParams := url.Values{}
    51  
    52  	if err := typeCheckParameter(localVarOptionals["count"], "float32", "count"); err != nil {
    53  		return successPayload, nil, err
    54  	}
    55  	if err := typeCheckParameter(localVarOptionals["start"], "float32", "start"); err != nil {
    56  		return successPayload, nil, err
    57  	}
    58  	if err := typeCheckParameter(localVarOptionals["reverse"], "bool", "reverse"); err != nil {
    59  		return successPayload, nil, err
    60  	}
    61  	if err := typeCheckParameter(localVarOptionals["channelID"], "float64", "channelID"); err != nil {
    62  		return successPayload, nil, err
    63  	}
    64  
    65  	if localVarTempParam, localVarOk := localVarOptionals["count"].(float32); localVarOk {
    66  		localVarQueryParams.Add("count", parameterToString(localVarTempParam, ""))
    67  	}
    68  	if localVarTempParam, localVarOk := localVarOptionals["start"].(float32); localVarOk {
    69  		localVarQueryParams.Add("start", parameterToString(localVarTempParam, ""))
    70  	}
    71  	if localVarTempParam, localVarOk := localVarOptionals["reverse"].(bool); localVarOk {
    72  		localVarQueryParams.Add("reverse", parameterToString(localVarTempParam, ""))
    73  	}
    74  	if localVarTempParam, localVarOk := localVarOptionals["channelID"].(float64); localVarOk {
    75  		localVarQueryParams.Add("channelID", parameterToString(localVarTempParam, ""))
    76  	}
    77  	// to determine the Content-Type header
    78  	localVarHttpContentTypes := []string{"application/json", "application/x-www-form-urlencoded",}
    79  
    80  	// set Content-Type header
    81  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
    82  	if localVarHttpContentType != "" {
    83  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
    84  	}
    85  
    86  	// to determine the Accept header
    87  	localVarHttpHeaderAccepts := []string{
    88  		"application/json",
    89  		"application/xml",
    90  		"text/xml",
    91  		"application/javascript",
    92  		"text/javascript",
    93  	}
    94  
    95  	// set Accept header
    96  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
    97  	if localVarHttpHeaderAccept != "" {
    98  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
    99  	}
   100  	r, err := a.client.prepareRequest(nil, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   101  	if err != nil {
   102  		return successPayload, nil, err
   103  	}
   104  
   105  	localVarHttpResponse, err := a.client.callAPI(r)
   106  	if err != nil || localVarHttpResponse == nil {
   107  		return successPayload, localVarHttpResponse, err
   108  	}
   109  	defer localVarHttpResponse.Body.Close()
   110  	if localVarHttpResponse.StatusCode >= 300 {
   111  		return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status)
   112  	}
   113  
   114  	if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil {
   115  		return successPayload, localVarHttpResponse, err
   116  	}
   117  
   118  	return successPayload, localVarHttpResponse, err
   119  }
   120  
   121  /* ChatApiService Get available channels.
   122  
   123   @return []ChatChannel*/
   124  func (a *ChatApiService) ChatGetChannels() ([]ChatChannel, *http.Response, error) {
   125  	var (
   126  		localVarHttpMethod = strings.ToUpper("Get")
   127  		localVarPostBody   interface{}
   128  		localVarFileName   string
   129  		localVarFileBytes  []byte
   130  		successPayload     []ChatChannel
   131  	)
   132  
   133  	// create path and map variables
   134  	localVarPath := a.client.cfg.BasePath + "/chat/channels"
   135  
   136  	localVarHeaderParams := make(map[string]string)
   137  	localVarQueryParams := url.Values{}
   138  	localVarFormParams := url.Values{}
   139  
   140  	// to determine the Content-Type header
   141  	localVarHttpContentTypes := []string{"application/json", "application/x-www-form-urlencoded",}
   142  
   143  	// set Content-Type header
   144  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   145  	if localVarHttpContentType != "" {
   146  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   147  	}
   148  
   149  	// to determine the Accept header
   150  	localVarHttpHeaderAccepts := []string{
   151  		"application/json",
   152  		"application/xml",
   153  		"text/xml",
   154  		"application/javascript",
   155  		"text/javascript",
   156  	}
   157  
   158  	// set Accept header
   159  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   160  	if localVarHttpHeaderAccept != "" {
   161  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   162  	}
   163  	r, err := a.client.prepareRequest(nil, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   164  	if err != nil {
   165  		return successPayload, nil, err
   166  	}
   167  
   168  	localVarHttpResponse, err := a.client.callAPI(r)
   169  	if err != nil || localVarHttpResponse == nil {
   170  		return successPayload, localVarHttpResponse, err
   171  	}
   172  	defer localVarHttpResponse.Body.Close()
   173  	if localVarHttpResponse.StatusCode >= 300 {
   174  		return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status)
   175  	}
   176  
   177  	if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil {
   178  		return successPayload, localVarHttpResponse, err
   179  	}
   180  
   181  	return successPayload, localVarHttpResponse, err
   182  }
   183  
   184  /* ChatApiService Get connected users.
   185   Returns an array with browser users in the first position and API users (bots) in the second position.
   186  
   187   @return ConnectedUsers*/
   188  func (a *ChatApiService) ChatGetConnected() (ConnectedUsers, *http.Response, error) {
   189  	var (
   190  		localVarHttpMethod = strings.ToUpper("Get")
   191  		localVarPostBody   interface{}
   192  		localVarFileName   string
   193  		localVarFileBytes  []byte
   194  		successPayload     ConnectedUsers
   195  	)
   196  
   197  	// create path and map variables
   198  	localVarPath := a.client.cfg.BasePath + "/chat/connected"
   199  
   200  	localVarHeaderParams := make(map[string]string)
   201  	localVarQueryParams := url.Values{}
   202  	localVarFormParams := url.Values{}
   203  
   204  	// to determine the Content-Type header
   205  	localVarHttpContentTypes := []string{"application/json", "application/x-www-form-urlencoded",}
   206  
   207  	// set Content-Type header
   208  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   209  	if localVarHttpContentType != "" {
   210  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   211  	}
   212  
   213  	// to determine the Accept header
   214  	localVarHttpHeaderAccepts := []string{
   215  		"application/json",
   216  		"application/xml",
   217  		"text/xml",
   218  		"application/javascript",
   219  		"text/javascript",
   220  	}
   221  
   222  	// set Accept header
   223  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   224  	if localVarHttpHeaderAccept != "" {
   225  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   226  	}
   227  	r, err := a.client.prepareRequest(nil, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   228  	if err != nil {
   229  		return successPayload, nil, err
   230  	}
   231  
   232  	localVarHttpResponse, err := a.client.callAPI(r)
   233  	if err != nil || localVarHttpResponse == nil {
   234  		return successPayload, localVarHttpResponse, err
   235  	}
   236  	defer localVarHttpResponse.Body.Close()
   237  	if localVarHttpResponse.StatusCode >= 300 {
   238  		return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status)
   239  	}
   240  
   241  	if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil {
   242  		return successPayload, localVarHttpResponse, err
   243  	}
   244  
   245  	return successPayload, localVarHttpResponse, err
   246  }
   247  
   248  /* ChatApiService Send a chat message.
   249   * @param ctx context.Context Authentication Context 
   250   @param message 
   251   @param optional (nil or map[string]interface{}) with one or more of:
   252       @param "channelID" (float64) Channel to post to. Default 1 (English).
   253   @return Chat*/
   254  func (a *ChatApiService) ChatNew(ctx context.Context, message string, localVarOptionals map[string]interface{}) (Chat, *http.Response, error) {
   255  	var (
   256  		localVarHttpMethod = strings.ToUpper("Post")
   257  		localVarPostBody   interface{}
   258  		localVarFileName   string
   259  		localVarFileBytes  []byte
   260  		successPayload     Chat
   261  	)
   262  
   263  	// create path and map variables
   264  	localVarPath := a.client.cfg.BasePath + "/chat"
   265  
   266  	localVarHeaderParams := make(map[string]string)
   267  	localVarQueryParams := url.Values{}
   268  	localVarFormParams := url.Values{}
   269  
   270  	if err := typeCheckParameter(localVarOptionals["channelID"], "float64", "channelID"); err != nil {
   271  		return successPayload, nil, err
   272  	}
   273  
   274  	// to determine the Content-Type header
   275  	localVarHttpContentTypes := []string{"application/json", "application/x-www-form-urlencoded",}
   276  
   277  	// set Content-Type header
   278  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   279  	if localVarHttpContentType != "" {
   280  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   281  	}
   282  
   283  	// to determine the Accept header
   284  	localVarHttpHeaderAccepts := []string{
   285  		"application/json",
   286  		"application/xml",
   287  		"text/xml",
   288  		"application/javascript",
   289  		"text/javascript",
   290  	}
   291  
   292  	// set Accept header
   293  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   294  	if localVarHttpHeaderAccept != "" {
   295  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   296  	}
   297  	localVarFormParams.Add("message", parameterToString(message, ""))
   298  	if localVarTempParam, localVarOk := localVarOptionals["channelID"].(float64); localVarOk {
   299  		localVarFormParams.Add("channelID", parameterToString(localVarTempParam, ""))
   300  	}
   301  	if ctx != nil {
   302  		// API Key Authentication
   303  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
   304  			var key string
   305  			if auth.Prefix != "" {
   306  				key = auth.Prefix + " " + auth.Key
   307  			} else {
   308  				key = auth.Key
   309  			}
   310  			localVarHeaderParams["api-key"] = key
   311  		}
   312  	}
   313  	if ctx != nil {
   314  		// API Key Authentication
   315  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
   316  			var key string
   317  			if auth.Prefix != "" {
   318  				key = auth.Prefix + " " + auth.Key
   319  			} else {
   320  				key = auth.Key
   321  			}
   322  			localVarHeaderParams["api-nonce"] = key
   323  		}
   324  	}
   325  	if ctx != nil {
   326  		// API Key Authentication
   327  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
   328  			var key string
   329  			if auth.Prefix != "" {
   330  				key = auth.Prefix + " " + auth.Key
   331  			} else {
   332  				key = auth.Key
   333  			}
   334  			localVarHeaderParams["api-signature"] = key
   335  		}
   336  	}
   337  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
   338  	if err != nil {
   339  		return successPayload, nil, err
   340  	}
   341  
   342  	localVarHttpResponse, err := a.client.callAPI(r)
   343  	if err != nil || localVarHttpResponse == nil {
   344  		return successPayload, localVarHttpResponse, err
   345  	}
   346  	defer localVarHttpResponse.Body.Close()
   347  	if localVarHttpResponse.StatusCode >= 300 {
   348  		return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status)
   349  	}
   350  
   351  	if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil {
   352  		return successPayload, localVarHttpResponse, err
   353  	}
   354  
   355  	return successPayload, localVarHttpResponse, err
   356  }