github.com/grokify/go-ringcentral-client@v0.3.31/engagedigital/v1/client/api_time_sheets.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 TimeSheetsApiService service
    29  
    30  /*
    31  TimeSheetsApiService Creating a time sheet
    32  This method creates a time sheet. In case of success it renders the time sheet, otherwise, it renders an error (422 HTTP code).  Authorization​: only users that can create time sheet.
    33   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
    34   * @param label The label of the time sheet.
    35   * @param optional nil or *CreateTimeSheetOpts - Optional Parameters:
    36   * @param "Active" (optional.Bool) -  true or false, this field is used to enable/disable a time sheet.
    37   * @param "SourceIds" (optional.Interface of []string) -  An array containing id of each source using your time sheet.
    38   * @param "HolidaysRegion" (optional.String) -  A string containing the first two letters of your country (example: \"fr\"/\"en\"/\"es\"), useful to bootstrap default holidays following to a country.
    39   * @param "Holidays" (optional.String) -  An array containing one or more hash of holidays, a holiday must contain a name (string) and a date (string), the date must be in a valid format, a valid format is a format corresponding to your domain’s locale).
    40   * @param "MondayHours" (optional.String) -  this field define the time intervals of the day (in secs). An empty string means that there are no business hours on this day. For example: “a-b,c-d”: “a” is the beginning of the first interval of the day, “b” is the ending of the first interval of the day, “c” is the beginning of the second interval of the day, “d” is the ending of the second interval of the day
    41   * @param "TuesdayHours" (optional.String) -  this field define the time intervals of the day (in secs). An empty string means that there are no business hours on this day. See `monday_hours` for the format.
    42   * @param "WednesdayHours" (optional.String) -  this field define the time intervals of the day (in secs). An empty string means that there are no business hours on this day. See `monday_hours` for the format.
    43   * @param "ThursdayHours" (optional.String) -  this field define the time intervals of the day (in secs). An empty string means that there are no business hours on this day. See `monday_hours` for the format.
    44   * @param "FridayHours" (optional.String) -  this field define the time intervals of the day (in secs). An empty string means that there are no business hours on this day. See `monday_hours` for the format.
    45   * @param "SaturdayHours" (optional.String) -  this field define the time intervals of the day (in secs). An empty string means that there are no business hours on this day. See `monday_hours` for the format.
    46   * @param "SundayHours" (optional.String) -  this field define the time intervals of the day (in secs). An empty string means that there are no business hours on this day. See `monday_hours` for the format.
    47  @return TimeSheet
    48  */
    49  
    50  type CreateTimeSheetOpts struct {
    51  	Active         optional.Bool
    52  	SourceIds      optional.Interface
    53  	HolidaysRegion optional.String
    54  	Holidays       optional.String
    55  	MondayHours    optional.String
    56  	TuesdayHours   optional.String
    57  	WednesdayHours optional.String
    58  	ThursdayHours  optional.String
    59  	FridayHours    optional.String
    60  	SaturdayHours  optional.String
    61  	SundayHours    optional.String
    62  }
    63  
    64  func (a *TimeSheetsApiService) CreateTimeSheet(ctx context.Context, label string, localVarOptionals *CreateTimeSheetOpts) (TimeSheet, *http.Response, error) {
    65  	var (
    66  		localVarHttpMethod   = http.MethodPost
    67  		localVarPostBody     interface{}
    68  		localVarFormFileName string
    69  		localVarFileName     string
    70  		localVarFileBytes    []byte
    71  		localVarReturnValue  TimeSheet
    72  	)
    73  
    74  	// create path and map variables
    75  	localVarPath := a.client.cfg.BasePath + "/time_sheets"
    76  
    77  	localVarHeaderParams := make(map[string]string)
    78  	localVarQueryParams := url.Values{}
    79  	localVarFormParams := url.Values{}
    80  
    81  	if localVarOptionals != nil && localVarOptionals.Active.IsSet() {
    82  		localVarQueryParams.Add("active", parameterToString(localVarOptionals.Active.Value(), ""))
    83  	}
    84  	localVarQueryParams.Add("label", parameterToString(label, ""))
    85  	if localVarOptionals != nil && localVarOptionals.SourceIds.IsSet() {
    86  		t := localVarOptionals.SourceIds.Value()
    87  		if reflect.TypeOf(t).Kind() == reflect.Slice {
    88  			s := reflect.ValueOf(t)
    89  			for i := 0; i < s.Len(); i++ {
    90  				localVarQueryParams.Add("source_ids", parameterToString(s.Index(i), "multi"))
    91  			}
    92  		} else {
    93  			localVarQueryParams.Add("source_ids", parameterToString(t, "multi"))
    94  		}
    95  	}
    96  	if localVarOptionals != nil && localVarOptionals.HolidaysRegion.IsSet() {
    97  		localVarQueryParams.Add("holidays_region", parameterToString(localVarOptionals.HolidaysRegion.Value(), ""))
    98  	}
    99  	if localVarOptionals != nil && localVarOptionals.Holidays.IsSet() {
   100  		localVarQueryParams.Add("holidays", parameterToString(localVarOptionals.Holidays.Value(), ""))
   101  	}
   102  	if localVarOptionals != nil && localVarOptionals.MondayHours.IsSet() {
   103  		localVarQueryParams.Add("monday_hours", parameterToString(localVarOptionals.MondayHours.Value(), ""))
   104  	}
   105  	if localVarOptionals != nil && localVarOptionals.TuesdayHours.IsSet() {
   106  		localVarQueryParams.Add("tuesday_hours", parameterToString(localVarOptionals.TuesdayHours.Value(), ""))
   107  	}
   108  	if localVarOptionals != nil && localVarOptionals.WednesdayHours.IsSet() {
   109  		localVarQueryParams.Add("wednesday_hours", parameterToString(localVarOptionals.WednesdayHours.Value(), ""))
   110  	}
   111  	if localVarOptionals != nil && localVarOptionals.ThursdayHours.IsSet() {
   112  		localVarQueryParams.Add("thursday_hours", parameterToString(localVarOptionals.ThursdayHours.Value(), ""))
   113  	}
   114  	if localVarOptionals != nil && localVarOptionals.FridayHours.IsSet() {
   115  		localVarQueryParams.Add("friday_hours", parameterToString(localVarOptionals.FridayHours.Value(), ""))
   116  	}
   117  	if localVarOptionals != nil && localVarOptionals.SaturdayHours.IsSet() {
   118  		localVarQueryParams.Add("saturday_hours", parameterToString(localVarOptionals.SaturdayHours.Value(), ""))
   119  	}
   120  	if localVarOptionals != nil && localVarOptionals.SundayHours.IsSet() {
   121  		localVarQueryParams.Add("sunday_hours", parameterToString(localVarOptionals.SundayHours.Value(), ""))
   122  	}
   123  	// to determine the Content-Type header
   124  	localVarHttpContentTypes := []string{}
   125  
   126  	// set Content-Type header
   127  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   128  	if localVarHttpContentType != "" {
   129  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   130  	}
   131  
   132  	// to determine the Accept header
   133  	localVarHttpHeaderAccepts := []string{"application/json"}
   134  
   135  	// set Accept header
   136  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   137  	if localVarHttpHeaderAccept != "" {
   138  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   139  	}
   140  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   141  	if err != nil {
   142  		return localVarReturnValue, nil, err
   143  	}
   144  
   145  	localVarHttpResponse, err := a.client.callAPI(r)
   146  	if err != nil || localVarHttpResponse == nil {
   147  		return localVarReturnValue, localVarHttpResponse, err
   148  	}
   149  
   150  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   151  	localVarHttpResponse.Body.Close()
   152  	if err != nil {
   153  		return localVarReturnValue, localVarHttpResponse, err
   154  	}
   155  
   156  	if localVarHttpResponse.StatusCode >= 300 {
   157  		newErr := GenericOpenAPIError{
   158  			body:  localVarBody,
   159  			error: localVarHttpResponse.Status,
   160  		}
   161  		if localVarHttpResponse.StatusCode == 200 {
   162  			var v TimeSheet
   163  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   164  			if err != nil {
   165  				newErr.error = err.Error()
   166  				return localVarReturnValue, localVarHttpResponse, newErr
   167  			}
   168  			newErr.model = v
   169  			return localVarReturnValue, localVarHttpResponse, newErr
   170  		}
   171  		return localVarReturnValue, localVarHttpResponse, newErr
   172  	}
   173  
   174  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   175  	if err != nil {
   176  		newErr := GenericOpenAPIError{
   177  			body:  localVarBody,
   178  			error: err.Error(),
   179  		}
   180  		return localVarReturnValue, localVarHttpResponse, newErr
   181  	}
   182  
   183  	return localVarReturnValue, localVarHttpResponse, nil
   184  }
   185  
   186  /*
   187  TimeSheetsApiService Deleting a time sheet
   188  This method destroys an existing time sheet. It renders time sheet itself. It renders a 404 if id is invalid.
   189   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   190   * @param timeSheetId
   191  @return TimeSheet
   192  */
   193  func (a *TimeSheetsApiService) DeleteTimeSheet(ctx context.Context, timeSheetId string) (TimeSheet, *http.Response, error) {
   194  	var (
   195  		localVarHttpMethod   = http.MethodDelete
   196  		localVarPostBody     interface{}
   197  		localVarFormFileName string
   198  		localVarFileName     string
   199  		localVarFileBytes    []byte
   200  		localVarReturnValue  TimeSheet
   201  	)
   202  
   203  	// create path and map variables
   204  	localVarPath := a.client.cfg.BasePath + "/time_sheets/{timeSheetId}"
   205  	localVarPath = strings.Replace(localVarPath, "{"+"timeSheetId"+"}", fmt.Sprintf("%v", timeSheetId), -1)
   206  
   207  	localVarHeaderParams := make(map[string]string)
   208  	localVarQueryParams := url.Values{}
   209  	localVarFormParams := url.Values{}
   210  
   211  	// to determine the Content-Type header
   212  	localVarHttpContentTypes := []string{}
   213  
   214  	// set Content-Type header
   215  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   216  	if localVarHttpContentType != "" {
   217  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   218  	}
   219  
   220  	// to determine the Accept header
   221  	localVarHttpHeaderAccepts := []string{"application/json"}
   222  
   223  	// set Accept header
   224  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   225  	if localVarHttpHeaderAccept != "" {
   226  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   227  	}
   228  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   229  	if err != nil {
   230  		return localVarReturnValue, nil, err
   231  	}
   232  
   233  	localVarHttpResponse, err := a.client.callAPI(r)
   234  	if err != nil || localVarHttpResponse == nil {
   235  		return localVarReturnValue, localVarHttpResponse, err
   236  	}
   237  
   238  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   239  	localVarHttpResponse.Body.Close()
   240  	if err != nil {
   241  		return localVarReturnValue, localVarHttpResponse, err
   242  	}
   243  
   244  	if localVarHttpResponse.StatusCode >= 300 {
   245  		newErr := GenericOpenAPIError{
   246  			body:  localVarBody,
   247  			error: localVarHttpResponse.Status,
   248  		}
   249  		if localVarHttpResponse.StatusCode == 200 {
   250  			var v TimeSheet
   251  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   252  			if err != nil {
   253  				newErr.error = err.Error()
   254  				return localVarReturnValue, localVarHttpResponse, newErr
   255  			}
   256  			newErr.model = v
   257  			return localVarReturnValue, localVarHttpResponse, newErr
   258  		}
   259  		return localVarReturnValue, localVarHttpResponse, newErr
   260  	}
   261  
   262  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   263  	if err != nil {
   264  		newErr := GenericOpenAPIError{
   265  			body:  localVarBody,
   266  			error: err.Error(),
   267  		}
   268  		return localVarReturnValue, localVarHttpResponse, newErr
   269  	}
   270  
   271  	return localVarReturnValue, localVarHttpResponse, nil
   272  }
   273  
   274  /*
   275  TimeSheetsApiService Getting all time sheets
   276  This method renders time sheets ordered by active and label.
   277   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   278   * @param optional nil or *GetAllTimeSheetsOpts - Optional Parameters:
   279   * @param "Offset" (optional.Int32) -  The record index to start. Default value is 0.
   280   * @param "Limit" (optional.Int32) -  The max number of records to return. Default value is 30, max value is 150.
   281  @return GetAllTimeSheetsResponse
   282  */
   283  
   284  type GetAllTimeSheetsOpts struct {
   285  	Offset optional.Int32
   286  	Limit  optional.Int32
   287  }
   288  
   289  func (a *TimeSheetsApiService) GetAllTimeSheets(ctx context.Context, localVarOptionals *GetAllTimeSheetsOpts) (GetAllTimeSheetsResponse, *http.Response, error) {
   290  	var (
   291  		localVarHttpMethod   = http.MethodGet
   292  		localVarPostBody     interface{}
   293  		localVarFormFileName string
   294  		localVarFileName     string
   295  		localVarFileBytes    []byte
   296  		localVarReturnValue  GetAllTimeSheetsResponse
   297  	)
   298  
   299  	// create path and map variables
   300  	localVarPath := a.client.cfg.BasePath + "/time_sheets"
   301  
   302  	localVarHeaderParams := make(map[string]string)
   303  	localVarQueryParams := url.Values{}
   304  	localVarFormParams := url.Values{}
   305  
   306  	if localVarOptionals != nil && localVarOptionals.Offset.IsSet() {
   307  		localVarQueryParams.Add("offset", parameterToString(localVarOptionals.Offset.Value(), ""))
   308  	}
   309  	if localVarOptionals != nil && localVarOptionals.Limit.IsSet() {
   310  		localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), ""))
   311  	}
   312  	// to determine the Content-Type header
   313  	localVarHttpContentTypes := []string{}
   314  
   315  	// set Content-Type header
   316  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   317  	if localVarHttpContentType != "" {
   318  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   319  	}
   320  
   321  	// to determine the Accept header
   322  	localVarHttpHeaderAccepts := []string{"application/json"}
   323  
   324  	// set Accept header
   325  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   326  	if localVarHttpHeaderAccept != "" {
   327  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   328  	}
   329  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   330  	if err != nil {
   331  		return localVarReturnValue, nil, err
   332  	}
   333  
   334  	localVarHttpResponse, err := a.client.callAPI(r)
   335  	if err != nil || localVarHttpResponse == nil {
   336  		return localVarReturnValue, localVarHttpResponse, err
   337  	}
   338  
   339  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   340  	localVarHttpResponse.Body.Close()
   341  	if err != nil {
   342  		return localVarReturnValue, localVarHttpResponse, err
   343  	}
   344  
   345  	if localVarHttpResponse.StatusCode >= 300 {
   346  		newErr := GenericOpenAPIError{
   347  			body:  localVarBody,
   348  			error: localVarHttpResponse.Status,
   349  		}
   350  		if localVarHttpResponse.StatusCode == 200 {
   351  			var v GetAllTimeSheetsResponse
   352  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   353  			if err != nil {
   354  				newErr.error = err.Error()
   355  				return localVarReturnValue, localVarHttpResponse, newErr
   356  			}
   357  			newErr.model = v
   358  			return localVarReturnValue, localVarHttpResponse, newErr
   359  		}
   360  		return localVarReturnValue, localVarHttpResponse, newErr
   361  	}
   362  
   363  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   364  	if err != nil {
   365  		newErr := GenericOpenAPIError{
   366  			body:  localVarBody,
   367  			error: err.Error(),
   368  		}
   369  		return localVarReturnValue, localVarHttpResponse, newErr
   370  	}
   371  
   372  	return localVarReturnValue, localVarHttpResponse, nil
   373  }
   374  
   375  /*
   376  TimeSheetsApiService Getting a time sheet from its id
   377  This method renders a time sheet from given id.  Authorization​: only users that can see time sheets in administration section.
   378   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   379   * @param timeSheetId
   380  @return TimeSheet
   381  */
   382  func (a *TimeSheetsApiService) GetTimeSheet(ctx context.Context, timeSheetId string) (TimeSheet, *http.Response, error) {
   383  	var (
   384  		localVarHttpMethod   = http.MethodGet
   385  		localVarPostBody     interface{}
   386  		localVarFormFileName string
   387  		localVarFileName     string
   388  		localVarFileBytes    []byte
   389  		localVarReturnValue  TimeSheet
   390  	)
   391  
   392  	// create path and map variables
   393  	localVarPath := a.client.cfg.BasePath + "/time_sheets/{timeSheetId}"
   394  	localVarPath = strings.Replace(localVarPath, "{"+"timeSheetId"+"}", fmt.Sprintf("%v", timeSheetId), -1)
   395  
   396  	localVarHeaderParams := make(map[string]string)
   397  	localVarQueryParams := url.Values{}
   398  	localVarFormParams := url.Values{}
   399  
   400  	// to determine the Content-Type header
   401  	localVarHttpContentTypes := []string{}
   402  
   403  	// set Content-Type header
   404  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   405  	if localVarHttpContentType != "" {
   406  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   407  	}
   408  
   409  	// to determine the Accept header
   410  	localVarHttpHeaderAccepts := []string{"application/json"}
   411  
   412  	// set Accept header
   413  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   414  	if localVarHttpHeaderAccept != "" {
   415  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   416  	}
   417  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   418  	if err != nil {
   419  		return localVarReturnValue, nil, err
   420  	}
   421  
   422  	localVarHttpResponse, err := a.client.callAPI(r)
   423  	if err != nil || localVarHttpResponse == nil {
   424  		return localVarReturnValue, localVarHttpResponse, err
   425  	}
   426  
   427  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   428  	localVarHttpResponse.Body.Close()
   429  	if err != nil {
   430  		return localVarReturnValue, localVarHttpResponse, err
   431  	}
   432  
   433  	if localVarHttpResponse.StatusCode >= 300 {
   434  		newErr := GenericOpenAPIError{
   435  			body:  localVarBody,
   436  			error: localVarHttpResponse.Status,
   437  		}
   438  		if localVarHttpResponse.StatusCode == 200 {
   439  			var v TimeSheet
   440  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   441  			if err != nil {
   442  				newErr.error = err.Error()
   443  				return localVarReturnValue, localVarHttpResponse, newErr
   444  			}
   445  			newErr.model = v
   446  			return localVarReturnValue, localVarHttpResponse, newErr
   447  		}
   448  		return localVarReturnValue, localVarHttpResponse, newErr
   449  	}
   450  
   451  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   452  	if err != nil {
   453  		newErr := GenericOpenAPIError{
   454  			body:  localVarBody,
   455  			error: err.Error(),
   456  		}
   457  		return localVarReturnValue, localVarHttpResponse, newErr
   458  	}
   459  
   460  	return localVarReturnValue, localVarHttpResponse, nil
   461  }
   462  
   463  /*
   464  TimeSheetsApiService Updating a time sheet
   465  This method updates an existing team from given attributes and renders it in case of success.
   466   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   467   * @param timeSheetId
   468   * @param optional nil or *UpdateTimeSheetOpts - Optional Parameters:
   469   * @param "Active" (optional.Bool) -  true or false, this field is used to enable/disable a time sheet.
   470   * @param "Label" (optional.String) -  The label of the time sheet.
   471   * @param "SourceIds" (optional.Interface of []string) -  An array containing id of each source using your time sheet.
   472   * @param "Holidays" (optional.String) -  An array containing one or more hash of holidays, a holiday must contain a name (string) and a date (string), the date must be in a valid format, a valid format is a format corresponding to your domain’s locale).
   473   * @param "MondayHours" (optional.String) -  this field define the time intervals of the day (in secs). An empty string means that there are no business hours on this day. For example: “a-b,c-d”: “a” is the beginning of the first interval of the day, “b” is the ending of the first interval of the day, “c” is the beginning of the second interval of the day, “d” is the ending of the second interval of the day
   474   * @param "TuesdayHours" (optional.String) -  this field define the time intervals of the day (in secs). An empty string means that there are no business hours on this day. See `monday_hours` for the format.
   475   * @param "WednesdayHours" (optional.String) -  this field define the time intervals of the day (in secs). An empty string means that there are no business hours on this day. See `monday_hours` for the format.
   476   * @param "ThursdayHours" (optional.String) -  this field define the time intervals of the day (in secs). An empty string means that there are no business hours on this day. See `monday_hours` for the format.
   477   * @param "FridayHours" (optional.String) -  this field define the time intervals of the day (in secs). An empty string means that there are no business hours on this day. See `monday_hours` for the format.
   478   * @param "SaturdayHours" (optional.String) -  this field define the time intervals of the day (in secs). An empty string means that there are no business hours on this day. See `monday_hours` for the format.
   479   * @param "SundayHours" (optional.String) -  this field define the time intervals of the day (in secs). An empty string means that there are no business hours on this day. See `monday_hours` for the format.
   480  @return TimeSheet
   481  */
   482  
   483  type UpdateTimeSheetOpts struct {
   484  	Active         optional.Bool
   485  	Label          optional.String
   486  	SourceIds      optional.Interface
   487  	Holidays       optional.String
   488  	MondayHours    optional.String
   489  	TuesdayHours   optional.String
   490  	WednesdayHours optional.String
   491  	ThursdayHours  optional.String
   492  	FridayHours    optional.String
   493  	SaturdayHours  optional.String
   494  	SundayHours    optional.String
   495  }
   496  
   497  func (a *TimeSheetsApiService) UpdateTimeSheet(ctx context.Context, timeSheetId string, localVarOptionals *UpdateTimeSheetOpts) (TimeSheet, *http.Response, error) {
   498  	var (
   499  		localVarHttpMethod   = http.MethodPut
   500  		localVarPostBody     interface{}
   501  		localVarFormFileName string
   502  		localVarFileName     string
   503  		localVarFileBytes    []byte
   504  		localVarReturnValue  TimeSheet
   505  	)
   506  
   507  	// create path and map variables
   508  	localVarPath := a.client.cfg.BasePath + "/time_sheets/{timeSheetId}"
   509  	localVarPath = strings.Replace(localVarPath, "{"+"timeSheetId"+"}", fmt.Sprintf("%v", timeSheetId), -1)
   510  
   511  	localVarHeaderParams := make(map[string]string)
   512  	localVarQueryParams := url.Values{}
   513  	localVarFormParams := url.Values{}
   514  
   515  	if localVarOptionals != nil && localVarOptionals.Active.IsSet() {
   516  		localVarQueryParams.Add("active", parameterToString(localVarOptionals.Active.Value(), ""))
   517  	}
   518  	if localVarOptionals != nil && localVarOptionals.Label.IsSet() {
   519  		localVarQueryParams.Add("label", parameterToString(localVarOptionals.Label.Value(), ""))
   520  	}
   521  	if localVarOptionals != nil && localVarOptionals.SourceIds.IsSet() {
   522  		t := localVarOptionals.SourceIds.Value()
   523  		if reflect.TypeOf(t).Kind() == reflect.Slice {
   524  			s := reflect.ValueOf(t)
   525  			for i := 0; i < s.Len(); i++ {
   526  				localVarQueryParams.Add("source_ids[]", parameterToString(s.Index(i), "multi"))
   527  			}
   528  		} else {
   529  			localVarQueryParams.Add("source_ids[]", parameterToString(t, "multi"))
   530  		}
   531  	}
   532  	if localVarOptionals != nil && localVarOptionals.Holidays.IsSet() {
   533  		localVarQueryParams.Add("holidays", parameterToString(localVarOptionals.Holidays.Value(), ""))
   534  	}
   535  	if localVarOptionals != nil && localVarOptionals.MondayHours.IsSet() {
   536  		localVarQueryParams.Add("monday_hours", parameterToString(localVarOptionals.MondayHours.Value(), ""))
   537  	}
   538  	if localVarOptionals != nil && localVarOptionals.TuesdayHours.IsSet() {
   539  		localVarQueryParams.Add("tuesday_hours", parameterToString(localVarOptionals.TuesdayHours.Value(), ""))
   540  	}
   541  	if localVarOptionals != nil && localVarOptionals.WednesdayHours.IsSet() {
   542  		localVarQueryParams.Add("wednesday_hours", parameterToString(localVarOptionals.WednesdayHours.Value(), ""))
   543  	}
   544  	if localVarOptionals != nil && localVarOptionals.ThursdayHours.IsSet() {
   545  		localVarQueryParams.Add("thursday_hours", parameterToString(localVarOptionals.ThursdayHours.Value(), ""))
   546  	}
   547  	if localVarOptionals != nil && localVarOptionals.FridayHours.IsSet() {
   548  		localVarQueryParams.Add("friday_hours", parameterToString(localVarOptionals.FridayHours.Value(), ""))
   549  	}
   550  	if localVarOptionals != nil && localVarOptionals.SaturdayHours.IsSet() {
   551  		localVarQueryParams.Add("saturday_hours", parameterToString(localVarOptionals.SaturdayHours.Value(), ""))
   552  	}
   553  	if localVarOptionals != nil && localVarOptionals.SundayHours.IsSet() {
   554  		localVarQueryParams.Add("sunday_hours", parameterToString(localVarOptionals.SundayHours.Value(), ""))
   555  	}
   556  	// to determine the Content-Type header
   557  	localVarHttpContentTypes := []string{}
   558  
   559  	// set Content-Type header
   560  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   561  	if localVarHttpContentType != "" {
   562  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   563  	}
   564  
   565  	// to determine the Accept header
   566  	localVarHttpHeaderAccepts := []string{"application/json"}
   567  
   568  	// set Accept header
   569  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   570  	if localVarHttpHeaderAccept != "" {
   571  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   572  	}
   573  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   574  	if err != nil {
   575  		return localVarReturnValue, nil, err
   576  	}
   577  
   578  	localVarHttpResponse, err := a.client.callAPI(r)
   579  	if err != nil || localVarHttpResponse == nil {
   580  		return localVarReturnValue, localVarHttpResponse, err
   581  	}
   582  
   583  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   584  	localVarHttpResponse.Body.Close()
   585  	if err != nil {
   586  		return localVarReturnValue, localVarHttpResponse, err
   587  	}
   588  
   589  	if localVarHttpResponse.StatusCode >= 300 {
   590  		newErr := GenericOpenAPIError{
   591  			body:  localVarBody,
   592  			error: localVarHttpResponse.Status,
   593  		}
   594  		if localVarHttpResponse.StatusCode == 200 {
   595  			var v TimeSheet
   596  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   597  			if err != nil {
   598  				newErr.error = err.Error()
   599  				return localVarReturnValue, localVarHttpResponse, newErr
   600  			}
   601  			newErr.model = v
   602  			return localVarReturnValue, localVarHttpResponse, newErr
   603  		}
   604  		return localVarReturnValue, localVarHttpResponse, newErr
   605  	}
   606  
   607  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   608  	if err != nil {
   609  		newErr := GenericOpenAPIError{
   610  			body:  localVarBody,
   611  			error: err.Error(),
   612  		}
   613  		return localVarReturnValue, localVarHttpResponse, newErr
   614  	}
   615  
   616  	return localVarReturnValue, localVarHttpResponse, nil
   617  }