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 }