github.com/grokify/go-ringcentral-client@v0.3.31/engagedigital/v1/client/api_tasks.go (about) 1 /* 2 * Engage Digital API 3 * 4 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) 5 * 6 * API version: 1.0 7 * Generated by: OpenAPI Generator (https://openapi-generator.tech) 8 */ 9 10 package engagedigital 11 12 import ( 13 "context" 14 "fmt" 15 "github.com/antihax/optional" 16 "io/ioutil" 17 "net/http" 18 "net/url" 19 "reflect" 20 "strings" 21 ) 22 23 // Linger please 24 var ( 25 _ context.Context 26 ) 27 28 type TasksApiService service 29 30 /* 31 TasksApiService Getting all tasks 32 This method renders tasks ordered by priority (highest first) and then by creation date (latest first). Authorization: only users that can read tasks. 33 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 34 * @param optional nil or *GetAllTasksOpts - Optional Parameters: 35 * @param "Queue" (optional.String) - To filter tasks on given queue name (filters on the “global” queue by default).The most commonly used queues are: “global” (contains every task pending assignation), “workbin_{agent_id}” (contains every tasks assigned to the {agent_id} agent, “history” (contains every processed tasks), and “undelivered” (contains every undelivered tasks). If queue is set to “workbins” all the tasks currently in a workbin will be returned. 36 * @param "ChannelId" (optional.String) - To filter tasks on given channel id. 37 * @param "Step" (optional.String) - To filter tasks on the step they’re currently in. 38 * @param "Offset" (optional.Int32) - The record index to start. Default value is 0. 39 * @param "Limit" (optional.Int32) - The max number of records to return. Default value is 30, max value is 150. 40 @return GetAllTasksResponse 41 */ 42 43 type GetAllTasksOpts struct { 44 Queue optional.String 45 ChannelId optional.String 46 Step optional.String 47 Offset optional.Int32 48 Limit optional.Int32 49 } 50 51 func (a *TasksApiService) GetAllTasks(ctx context.Context, localVarOptionals *GetAllTasksOpts) (GetAllTasksResponse, *http.Response, error) { 52 var ( 53 localVarHttpMethod = http.MethodGet 54 localVarPostBody interface{} 55 localVarFormFileName string 56 localVarFileName string 57 localVarFileBytes []byte 58 localVarReturnValue GetAllTasksResponse 59 ) 60 61 // create path and map variables 62 localVarPath := a.client.cfg.BasePath + "/tasks" 63 64 localVarHeaderParams := make(map[string]string) 65 localVarQueryParams := url.Values{} 66 localVarFormParams := url.Values{} 67 68 if localVarOptionals != nil && localVarOptionals.Queue.IsSet() { 69 localVarQueryParams.Add("queue", parameterToString(localVarOptionals.Queue.Value(), "")) 70 } 71 if localVarOptionals != nil && localVarOptionals.ChannelId.IsSet() { 72 localVarQueryParams.Add("channel_id", parameterToString(localVarOptionals.ChannelId.Value(), "")) 73 } 74 if localVarOptionals != nil && localVarOptionals.Step.IsSet() { 75 localVarQueryParams.Add("step", parameterToString(localVarOptionals.Step.Value(), "")) 76 } 77 if localVarOptionals != nil && localVarOptionals.Offset.IsSet() { 78 localVarQueryParams.Add("offset", parameterToString(localVarOptionals.Offset.Value(), "")) 79 } 80 if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { 81 localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) 82 } 83 // to determine the Content-Type header 84 localVarHttpContentTypes := []string{} 85 86 // set Content-Type header 87 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 88 if localVarHttpContentType != "" { 89 localVarHeaderParams["Content-Type"] = localVarHttpContentType 90 } 91 92 // to determine the Accept header 93 localVarHttpHeaderAccepts := []string{"application/json"} 94 95 // set Accept header 96 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 97 if localVarHttpHeaderAccept != "" { 98 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 99 } 100 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 101 if err != nil { 102 return localVarReturnValue, nil, err 103 } 104 105 localVarHttpResponse, err := a.client.callAPI(r) 106 if err != nil || localVarHttpResponse == nil { 107 return localVarReturnValue, localVarHttpResponse, err 108 } 109 110 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 111 localVarHttpResponse.Body.Close() 112 if err != nil { 113 return localVarReturnValue, localVarHttpResponse, err 114 } 115 116 if localVarHttpResponse.StatusCode >= 300 { 117 newErr := GenericOpenAPIError{ 118 body: localVarBody, 119 error: localVarHttpResponse.Status, 120 } 121 if localVarHttpResponse.StatusCode == 200 { 122 var v GetAllTasksResponse 123 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 124 if err != nil { 125 newErr.error = err.Error() 126 return localVarReturnValue, localVarHttpResponse, newErr 127 } 128 newErr.model = v 129 return localVarReturnValue, localVarHttpResponse, newErr 130 } 131 return localVarReturnValue, localVarHttpResponse, newErr 132 } 133 134 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 135 if err != nil { 136 newErr := GenericOpenAPIError{ 137 body: localVarBody, 138 error: err.Error(), 139 } 140 return localVarReturnValue, localVarHttpResponse, newErr 141 } 142 143 return localVarReturnValue, localVarHttpResponse, nil 144 } 145 146 /* 147 TasksApiService Getting a task from its id 148 This method renders a task from given id. 149 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 150 * @param taskId 151 @return Task 152 */ 153 func (a *TasksApiService) GetTask(ctx context.Context, taskId string) (Task, *http.Response, error) { 154 var ( 155 localVarHttpMethod = http.MethodGet 156 localVarPostBody interface{} 157 localVarFormFileName string 158 localVarFileName string 159 localVarFileBytes []byte 160 localVarReturnValue Task 161 ) 162 163 // create path and map variables 164 localVarPath := a.client.cfg.BasePath + "/tasks/{taskId}" 165 localVarPath = strings.Replace(localVarPath, "{"+"taskId"+"}", fmt.Sprintf("%v", taskId), -1) 166 167 localVarHeaderParams := make(map[string]string) 168 localVarQueryParams := url.Values{} 169 localVarFormParams := url.Values{} 170 171 // to determine the Content-Type header 172 localVarHttpContentTypes := []string{} 173 174 // set Content-Type header 175 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 176 if localVarHttpContentType != "" { 177 localVarHeaderParams["Content-Type"] = localVarHttpContentType 178 } 179 180 // to determine the Accept header 181 localVarHttpHeaderAccepts := []string{"application/json"} 182 183 // set Accept header 184 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 185 if localVarHttpHeaderAccept != "" { 186 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 187 } 188 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 189 if err != nil { 190 return localVarReturnValue, nil, err 191 } 192 193 localVarHttpResponse, err := a.client.callAPI(r) 194 if err != nil || localVarHttpResponse == nil { 195 return localVarReturnValue, localVarHttpResponse, err 196 } 197 198 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 199 localVarHttpResponse.Body.Close() 200 if err != nil { 201 return localVarReturnValue, localVarHttpResponse, err 202 } 203 204 if localVarHttpResponse.StatusCode >= 300 { 205 newErr := GenericOpenAPIError{ 206 body: localVarBody, 207 error: localVarHttpResponse.Status, 208 } 209 if localVarHttpResponse.StatusCode == 200 { 210 var v Task 211 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 212 if err != nil { 213 newErr.error = err.Error() 214 return localVarReturnValue, localVarHttpResponse, newErr 215 } 216 newErr.model = v 217 return localVarReturnValue, localVarHttpResponse, newErr 218 } 219 return localVarReturnValue, localVarHttpResponse, newErr 220 } 221 222 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 223 if err != nil { 224 newErr := GenericOpenAPIError{ 225 body: localVarBody, 226 error: err.Error(), 227 } 228 return localVarReturnValue, localVarHttpResponse, newErr 229 } 230 231 return localVarReturnValue, localVarHttpResponse, nil 232 } 233 234 /* 235 TasksApiService Move a task to another queue 236 This method changes a task queue and renders it in case of success. Only accepts “undelivered” and special queue defined in topology (e.g. triage). Authorization: only users that have the right to monitor the task view. 237 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 238 * @param taskId 239 * @param queue Name of the queue task has to be moved in. 240 @return Task 241 */ 242 func (a *TasksApiService) MoveTask(ctx context.Context, taskId string, queue string) (Task, *http.Response, error) { 243 var ( 244 localVarHttpMethod = http.MethodDelete 245 localVarPostBody interface{} 246 localVarFormFileName string 247 localVarFileName string 248 localVarFileBytes []byte 249 localVarReturnValue Task 250 ) 251 252 // create path and map variables 253 localVarPath := a.client.cfg.BasePath + "/tasks/{taskId}/move" 254 localVarPath = strings.Replace(localVarPath, "{"+"taskId"+"}", fmt.Sprintf("%v", taskId), -1) 255 256 localVarHeaderParams := make(map[string]string) 257 localVarQueryParams := url.Values{} 258 localVarFormParams := url.Values{} 259 260 localVarQueryParams.Add("queue", parameterToString(queue, "")) 261 // to determine the Content-Type header 262 localVarHttpContentTypes := []string{} 263 264 // set Content-Type header 265 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 266 if localVarHttpContentType != "" { 267 localVarHeaderParams["Content-Type"] = localVarHttpContentType 268 } 269 270 // to determine the Accept header 271 localVarHttpHeaderAccepts := []string{"application/json"} 272 273 // set Accept header 274 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 275 if localVarHttpHeaderAccept != "" { 276 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 277 } 278 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 279 if err != nil { 280 return localVarReturnValue, nil, err 281 } 282 283 localVarHttpResponse, err := a.client.callAPI(r) 284 if err != nil || localVarHttpResponse == nil { 285 return localVarReturnValue, localVarHttpResponse, err 286 } 287 288 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 289 localVarHttpResponse.Body.Close() 290 if err != nil { 291 return localVarReturnValue, localVarHttpResponse, err 292 } 293 294 if localVarHttpResponse.StatusCode >= 300 { 295 newErr := GenericOpenAPIError{ 296 body: localVarBody, 297 error: localVarHttpResponse.Status, 298 } 299 if localVarHttpResponse.StatusCode == 200 { 300 var v Task 301 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 302 if err != nil { 303 newErr.error = err.Error() 304 return localVarReturnValue, localVarHttpResponse, newErr 305 } 306 newErr.model = v 307 return localVarReturnValue, localVarHttpResponse, newErr 308 } 309 return localVarReturnValue, localVarHttpResponse, newErr 310 } 311 312 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 313 if err != nil { 314 newErr := GenericOpenAPIError{ 315 body: localVarBody, 316 error: err.Error(), 317 } 318 return localVarReturnValue, localVarHttpResponse, newErr 319 } 320 321 return localVarReturnValue, localVarHttpResponse, nil 322 } 323 324 /* 325 TasksApiService Transferring a task 326 This method transfers an existing task and renders it in case of success. Authorization: only users that have the right to monitor the task view. 327 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 328 * @param taskId 329 * @param optional nil or *TransferTaskOpts - Optional Parameters: 330 * @param "AgentIds" (optional.Interface of []string) - List of agents to transfer the task to (multiple). 331 * @param "Bypass" (optional.String) - Force the transfer to the first agent in agent_ids if set. When bypass is used, 332 * @param "CategoryIds" (optional.Interface of []string) - Filter agents receiving the task depending on their categories. 333 * @param "Language" (optional.String) - Filter agents receiving the task depending on their spoken languages. 334 * @param "TeamIds" (optional.Interface of []string) - Filter agents receiving the task depending on their teams. 335 * @param "Comment" (optional.String) - Add a comment to the task. 336 @return Task 337 */ 338 339 type TransferTaskOpts struct { 340 AgentIds optional.Interface 341 Bypass optional.String 342 CategoryIds optional.Interface 343 Language optional.String 344 TeamIds optional.Interface 345 Comment optional.String 346 } 347 348 func (a *TasksApiService) TransferTask(ctx context.Context, taskId string, localVarOptionals *TransferTaskOpts) (Task, *http.Response, error) { 349 var ( 350 localVarHttpMethod = http.MethodPut 351 localVarPostBody interface{} 352 localVarFormFileName string 353 localVarFileName string 354 localVarFileBytes []byte 355 localVarReturnValue Task 356 ) 357 358 // create path and map variables 359 localVarPath := a.client.cfg.BasePath + "/tasks/{taskId}/transfer" 360 localVarPath = strings.Replace(localVarPath, "{"+"taskId"+"}", fmt.Sprintf("%v", taskId), -1) 361 362 localVarHeaderParams := make(map[string]string) 363 localVarQueryParams := url.Values{} 364 localVarFormParams := url.Values{} 365 366 if localVarOptionals != nil && localVarOptionals.AgentIds.IsSet() { 367 t := localVarOptionals.AgentIds.Value() 368 if reflect.TypeOf(t).Kind() == reflect.Slice { 369 s := reflect.ValueOf(t) 370 for i := 0; i < s.Len(); i++ { 371 localVarQueryParams.Add("agent_ids", parameterToString(s.Index(i), "multi")) 372 } 373 } else { 374 localVarQueryParams.Add("agent_ids", parameterToString(t, "multi")) 375 } 376 } 377 if localVarOptionals != nil && localVarOptionals.Bypass.IsSet() { 378 localVarQueryParams.Add("bypass", parameterToString(localVarOptionals.Bypass.Value(), "")) 379 } 380 if localVarOptionals != nil && localVarOptionals.CategoryIds.IsSet() { 381 t := localVarOptionals.CategoryIds.Value() 382 if reflect.TypeOf(t).Kind() == reflect.Slice { 383 s := reflect.ValueOf(t) 384 for i := 0; i < s.Len(); i++ { 385 localVarQueryParams.Add("category_ids", parameterToString(s.Index(i), "multi")) 386 } 387 } else { 388 localVarQueryParams.Add("category_ids", parameterToString(t, "multi")) 389 } 390 } 391 if localVarOptionals != nil && localVarOptionals.Language.IsSet() { 392 localVarQueryParams.Add("language", parameterToString(localVarOptionals.Language.Value(), "")) 393 } 394 if localVarOptionals != nil && localVarOptionals.TeamIds.IsSet() { 395 t := localVarOptionals.TeamIds.Value() 396 if reflect.TypeOf(t).Kind() == reflect.Slice { 397 s := reflect.ValueOf(t) 398 for i := 0; i < s.Len(); i++ { 399 localVarQueryParams.Add("team_ids", parameterToString(s.Index(i), "multi")) 400 } 401 } else { 402 localVarQueryParams.Add("team_ids", parameterToString(t, "multi")) 403 } 404 } 405 if localVarOptionals != nil && localVarOptionals.Comment.IsSet() { 406 localVarQueryParams.Add("comment", parameterToString(localVarOptionals.Comment.Value(), "")) 407 } 408 // to determine the Content-Type header 409 localVarHttpContentTypes := []string{} 410 411 // set Content-Type header 412 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 413 if localVarHttpContentType != "" { 414 localVarHeaderParams["Content-Type"] = localVarHttpContentType 415 } 416 417 // to determine the Accept header 418 localVarHttpHeaderAccepts := []string{"application/json"} 419 420 // set Accept header 421 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 422 if localVarHttpHeaderAccept != "" { 423 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 424 } 425 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 426 if err != nil { 427 return localVarReturnValue, nil, err 428 } 429 430 localVarHttpResponse, err := a.client.callAPI(r) 431 if err != nil || localVarHttpResponse == nil { 432 return localVarReturnValue, localVarHttpResponse, err 433 } 434 435 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 436 localVarHttpResponse.Body.Close() 437 if err != nil { 438 return localVarReturnValue, localVarHttpResponse, err 439 } 440 441 if localVarHttpResponse.StatusCode >= 300 { 442 newErr := GenericOpenAPIError{ 443 body: localVarBody, 444 error: localVarHttpResponse.Status, 445 } 446 if localVarHttpResponse.StatusCode == 200 { 447 var v Task 448 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 449 if err != nil { 450 newErr.error = err.Error() 451 return localVarReturnValue, localVarHttpResponse, newErr 452 } 453 newErr.model = v 454 return localVarReturnValue, localVarHttpResponse, newErr 455 } 456 return localVarReturnValue, localVarHttpResponse, newErr 457 } 458 459 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 460 if err != nil { 461 newErr := GenericOpenAPIError{ 462 body: localVarBody, 463 error: err.Error(), 464 } 465 return localVarReturnValue, localVarHttpResponse, newErr 466 } 467 468 return localVarReturnValue, localVarHttpResponse, nil 469 }