github.com/grokify/go-ringcentral-client@v0.3.31/engagevoice/v1/client/api_campaigns.go (about)

     1  /*
     2   * RingCentral Engage Voice 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 engagevoice
    11  
    12  import (
    13  	"context"
    14  	"fmt"
    15  	"github.com/antihax/optional"
    16  	"io/ioutil"
    17  	"net/http"
    18  	"net/url"
    19  	"strings"
    20  )
    21  
    22  // Linger please
    23  var (
    24  	_ context.Context
    25  )
    26  
    27  type CampaignsApiService service
    28  
    29  /*
    30  CampaignsApiService Patch Campaign Lead
    31  Allows updating of a campaign lead, only updating those fields passed in  Permissions: READ on Account (Permission Override), UPDATE on Campaign
    32   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
    33   * @param accountId
    34   * @param leadId
    35   * @param campaignId
    36   * @param campaignLead
    37   * @param optional nil or *PatchCampaignLeadOpts - Optional Parameters:
    38   * @param "ListId" (optional.Int32) -
    39   * @param "TimezoneOption" (optional.String) -
    40   * @param "DuplicateHandling" (optional.String) -  `RETAIN_ALL`: Retain all records, `REMOVE_ALL_EXISTING`: Remove duplicates from all existing lists, `REMOVE_FROM_LIST`: Remove duplicates from this list
    41  @return CampaignLead
    42  */
    43  
    44  type PatchCampaignLeadOpts struct {
    45  	ListId            optional.Int32
    46  	TimezoneOption    optional.String
    47  	DuplicateHandling optional.String
    48  }
    49  
    50  func (a *CampaignsApiService) PatchCampaignLead(ctx context.Context, accountId string, leadId int32, campaignId int32, campaignLead CampaignLead, localVarOptionals *PatchCampaignLeadOpts) (CampaignLead, *http.Response, error) {
    51  	var (
    52  		localVarHttpMethod   = http.MethodPatch
    53  		localVarPostBody     interface{}
    54  		localVarFormFileName string
    55  		localVarFileName     string
    56  		localVarFileBytes    []byte
    57  		localVarReturnValue  CampaignLead
    58  	)
    59  
    60  	// create path and map variables
    61  	localVarPath := a.client.cfg.BasePath + "/admin/accounts/{accountId}/campaignLeads/{leadId}"
    62  	localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1)
    63  	localVarPath = strings.Replace(localVarPath, "{"+"leadId"+"}", fmt.Sprintf("%v", leadId), -1)
    64  
    65  	localVarHeaderParams := make(map[string]string)
    66  	localVarQueryParams := url.Values{}
    67  	localVarFormParams := url.Values{}
    68  
    69  	localVarQueryParams.Add("campaignId", parameterToString(campaignId, ""))
    70  	if localVarOptionals != nil && localVarOptionals.ListId.IsSet() {
    71  		localVarQueryParams.Add("listId", parameterToString(localVarOptionals.ListId.Value(), ""))
    72  	}
    73  	if localVarOptionals != nil && localVarOptionals.TimezoneOption.IsSet() {
    74  		localVarQueryParams.Add("timezoneOption", parameterToString(localVarOptionals.TimezoneOption.Value(), ""))
    75  	}
    76  	if localVarOptionals != nil && localVarOptionals.DuplicateHandling.IsSet() {
    77  		localVarQueryParams.Add("duplicateHandling", parameterToString(localVarOptionals.DuplicateHandling.Value(), ""))
    78  	}
    79  	// to determine the Content-Type header
    80  	localVarHttpContentTypes := []string{"application/json"}
    81  
    82  	// set Content-Type header
    83  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
    84  	if localVarHttpContentType != "" {
    85  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
    86  	}
    87  
    88  	// to determine the Accept header
    89  	localVarHttpHeaderAccepts := []string{"application/json"}
    90  
    91  	// set Accept header
    92  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
    93  	if localVarHttpHeaderAccept != "" {
    94  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
    95  	}
    96  	// body params
    97  	localVarPostBody = &campaignLead
    98  	if ctx != nil {
    99  		// API Key Authentication
   100  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
   101  			var key string
   102  			if auth.Prefix != "" {
   103  				key = auth.Prefix + " " + auth.Key
   104  			} else {
   105  				key = auth.Key
   106  			}
   107  			localVarHeaderParams["X-Auth-Token"] = key
   108  		}
   109  	}
   110  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   111  	if err != nil {
   112  		return localVarReturnValue, nil, err
   113  	}
   114  
   115  	localVarHttpResponse, err := a.client.callAPI(r)
   116  	if err != nil || localVarHttpResponse == nil {
   117  		return localVarReturnValue, localVarHttpResponse, err
   118  	}
   119  
   120  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   121  	localVarHttpResponse.Body.Close()
   122  	if err != nil {
   123  		return localVarReturnValue, localVarHttpResponse, err
   124  	}
   125  
   126  	if localVarHttpResponse.StatusCode >= 300 {
   127  		newErr := GenericOpenAPIError{
   128  			body:  localVarBody,
   129  			error: localVarHttpResponse.Status,
   130  		}
   131  		if localVarHttpResponse.StatusCode == 200 {
   132  			var v CampaignLead
   133  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   134  			if err != nil {
   135  				newErr.error = err.Error()
   136  				return localVarReturnValue, localVarHttpResponse, newErr
   137  			}
   138  			newErr.model = v
   139  			return localVarReturnValue, localVarHttpResponse, newErr
   140  		}
   141  		return localVarReturnValue, localVarHttpResponse, newErr
   142  	}
   143  
   144  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   145  	if err != nil {
   146  		newErr := GenericOpenAPIError{
   147  			body:  localVarBody,
   148  			error: err.Error(),
   149  		}
   150  		return localVarReturnValue, localVarHttpResponse, newErr
   151  	}
   152  
   153  	return localVarReturnValue, localVarHttpResponse, nil
   154  }
   155  
   156  /*
   157  CampaignsApiService Update Campaign Lead
   158  Allows updating of a campaign lead, updating entire lead including fields not passed in.  Permissions: READ on Account (Permission Override), UPDATE on Campaign
   159   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   160   * @param accountId
   161   * @param leadId
   162   * @param campaignId
   163   * @param campaignLead
   164   * @param optional nil or *UpdateCampaignLeadOpts - Optional Parameters:
   165   * @param "ListId" (optional.Int32) -
   166   * @param "TimezoneOption" (optional.String) -
   167   * @param "DuplicateHandling" (optional.String) -  `RETAIN_ALL`: Retain all records, `REMOVE_ALL_EXISTING`: Remove duplicates from all existing lists, `REMOVE_FROM_LIST`: Remove duplicates from this list
   168  @return CampaignLead
   169  */
   170  
   171  type UpdateCampaignLeadOpts struct {
   172  	ListId            optional.Int32
   173  	TimezoneOption    optional.String
   174  	DuplicateHandling optional.String
   175  }
   176  
   177  func (a *CampaignsApiService) UpdateCampaignLead(ctx context.Context, accountId string, leadId int32, campaignId int32, campaignLead CampaignLead, localVarOptionals *UpdateCampaignLeadOpts) (CampaignLead, *http.Response, error) {
   178  	var (
   179  		localVarHttpMethod   = http.MethodPut
   180  		localVarPostBody     interface{}
   181  		localVarFormFileName string
   182  		localVarFileName     string
   183  		localVarFileBytes    []byte
   184  		localVarReturnValue  CampaignLead
   185  	)
   186  
   187  	// create path and map variables
   188  	localVarPath := a.client.cfg.BasePath + "/admin/accounts/{accountId}/campaignLeads/{leadId}"
   189  	localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1)
   190  	localVarPath = strings.Replace(localVarPath, "{"+"leadId"+"}", fmt.Sprintf("%v", leadId), -1)
   191  
   192  	localVarHeaderParams := make(map[string]string)
   193  	localVarQueryParams := url.Values{}
   194  	localVarFormParams := url.Values{}
   195  
   196  	localVarQueryParams.Add("campaignId", parameterToString(campaignId, ""))
   197  	if localVarOptionals != nil && localVarOptionals.ListId.IsSet() {
   198  		localVarQueryParams.Add("listId", parameterToString(localVarOptionals.ListId.Value(), ""))
   199  	}
   200  	if localVarOptionals != nil && localVarOptionals.TimezoneOption.IsSet() {
   201  		localVarQueryParams.Add("timezoneOption", parameterToString(localVarOptionals.TimezoneOption.Value(), ""))
   202  	}
   203  	if localVarOptionals != nil && localVarOptionals.DuplicateHandling.IsSet() {
   204  		localVarQueryParams.Add("duplicateHandling", parameterToString(localVarOptionals.DuplicateHandling.Value(), ""))
   205  	}
   206  	// to determine the Content-Type header
   207  	localVarHttpContentTypes := []string{"application/json"}
   208  
   209  	// set Content-Type header
   210  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   211  	if localVarHttpContentType != "" {
   212  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   213  	}
   214  
   215  	// to determine the Accept header
   216  	localVarHttpHeaderAccepts := []string{"application/json"}
   217  
   218  	// set Accept header
   219  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   220  	if localVarHttpHeaderAccept != "" {
   221  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   222  	}
   223  	// body params
   224  	localVarPostBody = &campaignLead
   225  	if ctx != nil {
   226  		// API Key Authentication
   227  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
   228  			var key string
   229  			if auth.Prefix != "" {
   230  				key = auth.Prefix + " " + auth.Key
   231  			} else {
   232  				key = auth.Key
   233  			}
   234  			localVarHeaderParams["X-Auth-Token"] = key
   235  		}
   236  	}
   237  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   238  	if err != nil {
   239  		return localVarReturnValue, nil, err
   240  	}
   241  
   242  	localVarHttpResponse, err := a.client.callAPI(r)
   243  	if err != nil || localVarHttpResponse == nil {
   244  		return localVarReturnValue, localVarHttpResponse, err
   245  	}
   246  
   247  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   248  	localVarHttpResponse.Body.Close()
   249  	if err != nil {
   250  		return localVarReturnValue, localVarHttpResponse, err
   251  	}
   252  
   253  	if localVarHttpResponse.StatusCode >= 300 {
   254  		newErr := GenericOpenAPIError{
   255  			body:  localVarBody,
   256  			error: localVarHttpResponse.Status,
   257  		}
   258  		if localVarHttpResponse.StatusCode == 200 {
   259  			var v CampaignLead
   260  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   261  			if err != nil {
   262  				newErr.error = err.Error()
   263  				return localVarReturnValue, localVarHttpResponse, newErr
   264  			}
   265  			newErr.model = v
   266  			return localVarReturnValue, localVarHttpResponse, newErr
   267  		}
   268  		return localVarReturnValue, localVarHttpResponse, newErr
   269  	}
   270  
   271  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   272  	if err != nil {
   273  		newErr := GenericOpenAPIError{
   274  			body:  localVarBody,
   275  			error: err.Error(),
   276  		}
   277  		return localVarReturnValue, localVarHttpResponse, newErr
   278  	}
   279  
   280  	return localVarReturnValue, localVarHttpResponse, nil
   281  }
   282  
   283  /*
   284  CampaignsApiService Upload Leads
   285  Uploads a single lead or list of leads to a new or existing list
   286   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   287   * @param accountId
   288   * @param campaignId
   289   * @param uploadLeadsRequest
   290  @return UploadLeadsResponse
   291  */
   292  func (a *CampaignsApiService) UploadLeads(ctx context.Context, accountId string, campaignId string, uploadLeadsRequest UploadLeadsRequest) (UploadLeadsResponse, *http.Response, error) {
   293  	var (
   294  		localVarHttpMethod   = http.MethodPost
   295  		localVarPostBody     interface{}
   296  		localVarFormFileName string
   297  		localVarFileName     string
   298  		localVarFileBytes    []byte
   299  		localVarReturnValue  UploadLeadsResponse
   300  	)
   301  
   302  	// create path and map variables
   303  	localVarPath := a.client.cfg.BasePath + "/admin/accounts/{accountId}/campaigns/{campaignId}/leadLoader/direct"
   304  	localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1)
   305  	localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", fmt.Sprintf("%v", campaignId), -1)
   306  
   307  	localVarHeaderParams := make(map[string]string)
   308  	localVarQueryParams := url.Values{}
   309  	localVarFormParams := url.Values{}
   310  
   311  	// to determine the Content-Type header
   312  	localVarHttpContentTypes := []string{"application/json"}
   313  
   314  	// set Content-Type header
   315  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   316  	if localVarHttpContentType != "" {
   317  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   318  	}
   319  
   320  	// to determine the Accept header
   321  	localVarHttpHeaderAccepts := []string{"application/json"}
   322  
   323  	// set Accept header
   324  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   325  	if localVarHttpHeaderAccept != "" {
   326  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   327  	}
   328  	// body params
   329  	localVarPostBody = &uploadLeadsRequest
   330  	if ctx != nil {
   331  		// API Key Authentication
   332  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
   333  			var key string
   334  			if auth.Prefix != "" {
   335  				key = auth.Prefix + " " + auth.Key
   336  			} else {
   337  				key = auth.Key
   338  			}
   339  			localVarHeaderParams["X-Auth-Token"] = key
   340  		}
   341  	}
   342  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   343  	if err != nil {
   344  		return localVarReturnValue, nil, err
   345  	}
   346  
   347  	localVarHttpResponse, err := a.client.callAPI(r)
   348  	if err != nil || localVarHttpResponse == nil {
   349  		return localVarReturnValue, localVarHttpResponse, err
   350  	}
   351  
   352  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   353  	localVarHttpResponse.Body.Close()
   354  	if err != nil {
   355  		return localVarReturnValue, localVarHttpResponse, err
   356  	}
   357  
   358  	if localVarHttpResponse.StatusCode >= 300 {
   359  		newErr := GenericOpenAPIError{
   360  			body:  localVarBody,
   361  			error: localVarHttpResponse.Status,
   362  		}
   363  		if localVarHttpResponse.StatusCode == 200 {
   364  			var v UploadLeadsResponse
   365  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   366  			if err != nil {
   367  				newErr.error = err.Error()
   368  				return localVarReturnValue, localVarHttpResponse, newErr
   369  			}
   370  			newErr.model = v
   371  			return localVarReturnValue, localVarHttpResponse, newErr
   372  		}
   373  		return localVarReturnValue, localVarHttpResponse, newErr
   374  	}
   375  
   376  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   377  	if err != nil {
   378  		newErr := GenericOpenAPIError{
   379  			body:  localVarBody,
   380  			error: err.Error(),
   381  		}
   382  		return localVarReturnValue, localVarHttpResponse, newErr
   383  	}
   384  
   385  	return localVarReturnValue, localVarHttpResponse, nil
   386  }