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  }