github.com/yaegashi/msgraph.go@v0.1.4/beta/ActionCalendar.go (about)

     1  // Code generated by msgraph.go/gen DO NOT EDIT.
     2  
     3  package msgraph
     4  
     5  import (
     6  	"context"
     7  	"fmt"
     8  	"io/ioutil"
     9  	"net/http"
    10  
    11  	"github.com/yaegashi/msgraph.go/jsonx"
    12  )
    13  
    14  // CalendarGetScheduleRequestParameter undocumented
    15  type CalendarGetScheduleRequestParameter struct {
    16  	// Schedules undocumented
    17  	Schedules []string `json:"Schedules,omitempty"`
    18  	// EndTime undocumented
    19  	EndTime *DateTimeTimeZone `json:"EndTime,omitempty"`
    20  	// StartTime undocumented
    21  	StartTime *DateTimeTimeZone `json:"StartTime,omitempty"`
    22  	// AvailabilityViewInterval undocumented
    23  	AvailabilityViewInterval *int `json:"AvailabilityViewInterval,omitempty"`
    24  }
    25  
    26  // CalendarSharingMessageAcceptRequestParameter undocumented
    27  type CalendarSharingMessageAcceptRequestParameter struct {
    28  }
    29  
    30  // CalendarPermissions returns request builder for CalendarPermission collection
    31  func (b *CalendarRequestBuilder) CalendarPermissions() *CalendarCalendarPermissionsCollectionRequestBuilder {
    32  	bb := &CalendarCalendarPermissionsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
    33  	bb.baseURL += "/calendarPermissions"
    34  	return bb
    35  }
    36  
    37  // CalendarCalendarPermissionsCollectionRequestBuilder is request builder for CalendarPermission collection
    38  type CalendarCalendarPermissionsCollectionRequestBuilder struct{ BaseRequestBuilder }
    39  
    40  // Request returns request for CalendarPermission collection
    41  func (b *CalendarCalendarPermissionsCollectionRequestBuilder) Request() *CalendarCalendarPermissionsCollectionRequest {
    42  	return &CalendarCalendarPermissionsCollectionRequest{
    43  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
    44  	}
    45  }
    46  
    47  // ID returns request builder for CalendarPermission item
    48  func (b *CalendarCalendarPermissionsCollectionRequestBuilder) ID(id string) *CalendarPermissionRequestBuilder {
    49  	bb := &CalendarPermissionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
    50  	bb.baseURL += "/" + id
    51  	return bb
    52  }
    53  
    54  // CalendarCalendarPermissionsCollectionRequest is request for CalendarPermission collection
    55  type CalendarCalendarPermissionsCollectionRequest struct{ BaseRequest }
    56  
    57  // Paging perfoms paging operation for CalendarPermission collection
    58  func (r *CalendarCalendarPermissionsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]CalendarPermission, error) {
    59  	req, err := r.NewJSONRequest(method, path, obj)
    60  	if err != nil {
    61  		return nil, err
    62  	}
    63  	if ctx != nil {
    64  		req = req.WithContext(ctx)
    65  	}
    66  	res, err := r.client.Do(req)
    67  	if err != nil {
    68  		return nil, err
    69  	}
    70  	var values []CalendarPermission
    71  	for {
    72  		if res.StatusCode != http.StatusOK {
    73  			b, _ := ioutil.ReadAll(res.Body)
    74  			res.Body.Close()
    75  			errRes := &ErrorResponse{Response: res}
    76  			err := jsonx.Unmarshal(b, errRes)
    77  			if err != nil {
    78  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
    79  			}
    80  			return nil, errRes
    81  		}
    82  		var (
    83  			paging Paging
    84  			value  []CalendarPermission
    85  		)
    86  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
    87  		res.Body.Close()
    88  		if err != nil {
    89  			return nil, err
    90  		}
    91  		err = jsonx.Unmarshal(paging.Value, &value)
    92  		if err != nil {
    93  			return nil, err
    94  		}
    95  		values = append(values, value...)
    96  		if n >= 0 {
    97  			n--
    98  		}
    99  		if n == 0 || len(paging.NextLink) == 0 {
   100  			return values, nil
   101  		}
   102  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   103  		if ctx != nil {
   104  			req = req.WithContext(ctx)
   105  		}
   106  		res, err = r.client.Do(req)
   107  		if err != nil {
   108  			return nil, err
   109  		}
   110  	}
   111  }
   112  
   113  // GetN performs GET request for CalendarPermission collection, max N pages
   114  func (r *CalendarCalendarPermissionsCollectionRequest) GetN(ctx context.Context, n int) ([]CalendarPermission, error) {
   115  	var query string
   116  	if r.query != nil {
   117  		query = "?" + r.query.Encode()
   118  	}
   119  	return r.Paging(ctx, "GET", query, nil, n)
   120  }
   121  
   122  // Get performs GET request for CalendarPermission collection
   123  func (r *CalendarCalendarPermissionsCollectionRequest) Get(ctx context.Context) ([]CalendarPermission, error) {
   124  	return r.GetN(ctx, 0)
   125  }
   126  
   127  // Add performs POST request for CalendarPermission collection
   128  func (r *CalendarCalendarPermissionsCollectionRequest) Add(ctx context.Context, reqObj *CalendarPermission) (resObj *CalendarPermission, err error) {
   129  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   130  	return
   131  }
   132  
   133  // CalendarView returns request builder for Event collection
   134  func (b *CalendarRequestBuilder) CalendarView() *CalendarCalendarViewCollectionRequestBuilder {
   135  	bb := &CalendarCalendarViewCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   136  	bb.baseURL += "/calendarView"
   137  	return bb
   138  }
   139  
   140  // CalendarCalendarViewCollectionRequestBuilder is request builder for Event collection
   141  type CalendarCalendarViewCollectionRequestBuilder struct{ BaseRequestBuilder }
   142  
   143  // Request returns request for Event collection
   144  func (b *CalendarCalendarViewCollectionRequestBuilder) Request() *CalendarCalendarViewCollectionRequest {
   145  	return &CalendarCalendarViewCollectionRequest{
   146  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   147  	}
   148  }
   149  
   150  // ID returns request builder for Event item
   151  func (b *CalendarCalendarViewCollectionRequestBuilder) ID(id string) *EventRequestBuilder {
   152  	bb := &EventRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   153  	bb.baseURL += "/" + id
   154  	return bb
   155  }
   156  
   157  // CalendarCalendarViewCollectionRequest is request for Event collection
   158  type CalendarCalendarViewCollectionRequest struct{ BaseRequest }
   159  
   160  // Paging perfoms paging operation for Event collection
   161  func (r *CalendarCalendarViewCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Event, error) {
   162  	req, err := r.NewJSONRequest(method, path, obj)
   163  	if err != nil {
   164  		return nil, err
   165  	}
   166  	if ctx != nil {
   167  		req = req.WithContext(ctx)
   168  	}
   169  	res, err := r.client.Do(req)
   170  	if err != nil {
   171  		return nil, err
   172  	}
   173  	var values []Event
   174  	for {
   175  		if res.StatusCode != http.StatusOK {
   176  			b, _ := ioutil.ReadAll(res.Body)
   177  			res.Body.Close()
   178  			errRes := &ErrorResponse{Response: res}
   179  			err := jsonx.Unmarshal(b, errRes)
   180  			if err != nil {
   181  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   182  			}
   183  			return nil, errRes
   184  		}
   185  		var (
   186  			paging Paging
   187  			value  []Event
   188  		)
   189  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   190  		res.Body.Close()
   191  		if err != nil {
   192  			return nil, err
   193  		}
   194  		err = jsonx.Unmarshal(paging.Value, &value)
   195  		if err != nil {
   196  			return nil, err
   197  		}
   198  		values = append(values, value...)
   199  		if n >= 0 {
   200  			n--
   201  		}
   202  		if n == 0 || len(paging.NextLink) == 0 {
   203  			return values, nil
   204  		}
   205  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   206  		if ctx != nil {
   207  			req = req.WithContext(ctx)
   208  		}
   209  		res, err = r.client.Do(req)
   210  		if err != nil {
   211  			return nil, err
   212  		}
   213  	}
   214  }
   215  
   216  // GetN performs GET request for Event collection, max N pages
   217  func (r *CalendarCalendarViewCollectionRequest) GetN(ctx context.Context, n int) ([]Event, error) {
   218  	var query string
   219  	if r.query != nil {
   220  		query = "?" + r.query.Encode()
   221  	}
   222  	return r.Paging(ctx, "GET", query, nil, n)
   223  }
   224  
   225  // Get performs GET request for Event collection
   226  func (r *CalendarCalendarViewCollectionRequest) Get(ctx context.Context) ([]Event, error) {
   227  	return r.GetN(ctx, 0)
   228  }
   229  
   230  // Add performs POST request for Event collection
   231  func (r *CalendarCalendarViewCollectionRequest) Add(ctx context.Context, reqObj *Event) (resObj *Event, err error) {
   232  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   233  	return
   234  }
   235  
   236  // Events returns request builder for Event collection
   237  func (b *CalendarRequestBuilder) Events() *CalendarEventsCollectionRequestBuilder {
   238  	bb := &CalendarEventsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   239  	bb.baseURL += "/events"
   240  	return bb
   241  }
   242  
   243  // CalendarEventsCollectionRequestBuilder is request builder for Event collection
   244  type CalendarEventsCollectionRequestBuilder struct{ BaseRequestBuilder }
   245  
   246  // Request returns request for Event collection
   247  func (b *CalendarEventsCollectionRequestBuilder) Request() *CalendarEventsCollectionRequest {
   248  	return &CalendarEventsCollectionRequest{
   249  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   250  	}
   251  }
   252  
   253  // ID returns request builder for Event item
   254  func (b *CalendarEventsCollectionRequestBuilder) ID(id string) *EventRequestBuilder {
   255  	bb := &EventRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   256  	bb.baseURL += "/" + id
   257  	return bb
   258  }
   259  
   260  // CalendarEventsCollectionRequest is request for Event collection
   261  type CalendarEventsCollectionRequest struct{ BaseRequest }
   262  
   263  // Paging perfoms paging operation for Event collection
   264  func (r *CalendarEventsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Event, error) {
   265  	req, err := r.NewJSONRequest(method, path, obj)
   266  	if err != nil {
   267  		return nil, err
   268  	}
   269  	if ctx != nil {
   270  		req = req.WithContext(ctx)
   271  	}
   272  	res, err := r.client.Do(req)
   273  	if err != nil {
   274  		return nil, err
   275  	}
   276  	var values []Event
   277  	for {
   278  		if res.StatusCode != http.StatusOK {
   279  			b, _ := ioutil.ReadAll(res.Body)
   280  			res.Body.Close()
   281  			errRes := &ErrorResponse{Response: res}
   282  			err := jsonx.Unmarshal(b, errRes)
   283  			if err != nil {
   284  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   285  			}
   286  			return nil, errRes
   287  		}
   288  		var (
   289  			paging Paging
   290  			value  []Event
   291  		)
   292  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   293  		res.Body.Close()
   294  		if err != nil {
   295  			return nil, err
   296  		}
   297  		err = jsonx.Unmarshal(paging.Value, &value)
   298  		if err != nil {
   299  			return nil, err
   300  		}
   301  		values = append(values, value...)
   302  		if n >= 0 {
   303  			n--
   304  		}
   305  		if n == 0 || len(paging.NextLink) == 0 {
   306  			return values, nil
   307  		}
   308  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   309  		if ctx != nil {
   310  			req = req.WithContext(ctx)
   311  		}
   312  		res, err = r.client.Do(req)
   313  		if err != nil {
   314  			return nil, err
   315  		}
   316  	}
   317  }
   318  
   319  // GetN performs GET request for Event collection, max N pages
   320  func (r *CalendarEventsCollectionRequest) GetN(ctx context.Context, n int) ([]Event, error) {
   321  	var query string
   322  	if r.query != nil {
   323  		query = "?" + r.query.Encode()
   324  	}
   325  	return r.Paging(ctx, "GET", query, nil, n)
   326  }
   327  
   328  // Get performs GET request for Event collection
   329  func (r *CalendarEventsCollectionRequest) Get(ctx context.Context) ([]Event, error) {
   330  	return r.GetN(ctx, 0)
   331  }
   332  
   333  // Add performs POST request for Event collection
   334  func (r *CalendarEventsCollectionRequest) Add(ctx context.Context, reqObj *Event) (resObj *Event, err error) {
   335  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   336  	return
   337  }
   338  
   339  // MultiValueExtendedProperties returns request builder for MultiValueLegacyExtendedProperty collection
   340  func (b *CalendarRequestBuilder) MultiValueExtendedProperties() *CalendarMultiValueExtendedPropertiesCollectionRequestBuilder {
   341  	bb := &CalendarMultiValueExtendedPropertiesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   342  	bb.baseURL += "/multiValueExtendedProperties"
   343  	return bb
   344  }
   345  
   346  // CalendarMultiValueExtendedPropertiesCollectionRequestBuilder is request builder for MultiValueLegacyExtendedProperty collection
   347  type CalendarMultiValueExtendedPropertiesCollectionRequestBuilder struct{ BaseRequestBuilder }
   348  
   349  // Request returns request for MultiValueLegacyExtendedProperty collection
   350  func (b *CalendarMultiValueExtendedPropertiesCollectionRequestBuilder) Request() *CalendarMultiValueExtendedPropertiesCollectionRequest {
   351  	return &CalendarMultiValueExtendedPropertiesCollectionRequest{
   352  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   353  	}
   354  }
   355  
   356  // ID returns request builder for MultiValueLegacyExtendedProperty item
   357  func (b *CalendarMultiValueExtendedPropertiesCollectionRequestBuilder) ID(id string) *MultiValueLegacyExtendedPropertyRequestBuilder {
   358  	bb := &MultiValueLegacyExtendedPropertyRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   359  	bb.baseURL += "/" + id
   360  	return bb
   361  }
   362  
   363  // CalendarMultiValueExtendedPropertiesCollectionRequest is request for MultiValueLegacyExtendedProperty collection
   364  type CalendarMultiValueExtendedPropertiesCollectionRequest struct{ BaseRequest }
   365  
   366  // Paging perfoms paging operation for MultiValueLegacyExtendedProperty collection
   367  func (r *CalendarMultiValueExtendedPropertiesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]MultiValueLegacyExtendedProperty, error) {
   368  	req, err := r.NewJSONRequest(method, path, obj)
   369  	if err != nil {
   370  		return nil, err
   371  	}
   372  	if ctx != nil {
   373  		req = req.WithContext(ctx)
   374  	}
   375  	res, err := r.client.Do(req)
   376  	if err != nil {
   377  		return nil, err
   378  	}
   379  	var values []MultiValueLegacyExtendedProperty
   380  	for {
   381  		if res.StatusCode != http.StatusOK {
   382  			b, _ := ioutil.ReadAll(res.Body)
   383  			res.Body.Close()
   384  			errRes := &ErrorResponse{Response: res}
   385  			err := jsonx.Unmarshal(b, errRes)
   386  			if err != nil {
   387  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   388  			}
   389  			return nil, errRes
   390  		}
   391  		var (
   392  			paging Paging
   393  			value  []MultiValueLegacyExtendedProperty
   394  		)
   395  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   396  		res.Body.Close()
   397  		if err != nil {
   398  			return nil, err
   399  		}
   400  		err = jsonx.Unmarshal(paging.Value, &value)
   401  		if err != nil {
   402  			return nil, err
   403  		}
   404  		values = append(values, value...)
   405  		if n >= 0 {
   406  			n--
   407  		}
   408  		if n == 0 || len(paging.NextLink) == 0 {
   409  			return values, nil
   410  		}
   411  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   412  		if ctx != nil {
   413  			req = req.WithContext(ctx)
   414  		}
   415  		res, err = r.client.Do(req)
   416  		if err != nil {
   417  			return nil, err
   418  		}
   419  	}
   420  }
   421  
   422  // GetN performs GET request for MultiValueLegacyExtendedProperty collection, max N pages
   423  func (r *CalendarMultiValueExtendedPropertiesCollectionRequest) GetN(ctx context.Context, n int) ([]MultiValueLegacyExtendedProperty, error) {
   424  	var query string
   425  	if r.query != nil {
   426  		query = "?" + r.query.Encode()
   427  	}
   428  	return r.Paging(ctx, "GET", query, nil, n)
   429  }
   430  
   431  // Get performs GET request for MultiValueLegacyExtendedProperty collection
   432  func (r *CalendarMultiValueExtendedPropertiesCollectionRequest) Get(ctx context.Context) ([]MultiValueLegacyExtendedProperty, error) {
   433  	return r.GetN(ctx, 0)
   434  }
   435  
   436  // Add performs POST request for MultiValueLegacyExtendedProperty collection
   437  func (r *CalendarMultiValueExtendedPropertiesCollectionRequest) Add(ctx context.Context, reqObj *MultiValueLegacyExtendedProperty) (resObj *MultiValueLegacyExtendedProperty, err error) {
   438  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   439  	return
   440  }
   441  
   442  // SingleValueExtendedProperties returns request builder for SingleValueLegacyExtendedProperty collection
   443  func (b *CalendarRequestBuilder) SingleValueExtendedProperties() *CalendarSingleValueExtendedPropertiesCollectionRequestBuilder {
   444  	bb := &CalendarSingleValueExtendedPropertiesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   445  	bb.baseURL += "/singleValueExtendedProperties"
   446  	return bb
   447  }
   448  
   449  // CalendarSingleValueExtendedPropertiesCollectionRequestBuilder is request builder for SingleValueLegacyExtendedProperty collection
   450  type CalendarSingleValueExtendedPropertiesCollectionRequestBuilder struct{ BaseRequestBuilder }
   451  
   452  // Request returns request for SingleValueLegacyExtendedProperty collection
   453  func (b *CalendarSingleValueExtendedPropertiesCollectionRequestBuilder) Request() *CalendarSingleValueExtendedPropertiesCollectionRequest {
   454  	return &CalendarSingleValueExtendedPropertiesCollectionRequest{
   455  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   456  	}
   457  }
   458  
   459  // ID returns request builder for SingleValueLegacyExtendedProperty item
   460  func (b *CalendarSingleValueExtendedPropertiesCollectionRequestBuilder) ID(id string) *SingleValueLegacyExtendedPropertyRequestBuilder {
   461  	bb := &SingleValueLegacyExtendedPropertyRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   462  	bb.baseURL += "/" + id
   463  	return bb
   464  }
   465  
   466  // CalendarSingleValueExtendedPropertiesCollectionRequest is request for SingleValueLegacyExtendedProperty collection
   467  type CalendarSingleValueExtendedPropertiesCollectionRequest struct{ BaseRequest }
   468  
   469  // Paging perfoms paging operation for SingleValueLegacyExtendedProperty collection
   470  func (r *CalendarSingleValueExtendedPropertiesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]SingleValueLegacyExtendedProperty, error) {
   471  	req, err := r.NewJSONRequest(method, path, obj)
   472  	if err != nil {
   473  		return nil, err
   474  	}
   475  	if ctx != nil {
   476  		req = req.WithContext(ctx)
   477  	}
   478  	res, err := r.client.Do(req)
   479  	if err != nil {
   480  		return nil, err
   481  	}
   482  	var values []SingleValueLegacyExtendedProperty
   483  	for {
   484  		if res.StatusCode != http.StatusOK {
   485  			b, _ := ioutil.ReadAll(res.Body)
   486  			res.Body.Close()
   487  			errRes := &ErrorResponse{Response: res}
   488  			err := jsonx.Unmarshal(b, errRes)
   489  			if err != nil {
   490  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   491  			}
   492  			return nil, errRes
   493  		}
   494  		var (
   495  			paging Paging
   496  			value  []SingleValueLegacyExtendedProperty
   497  		)
   498  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   499  		res.Body.Close()
   500  		if err != nil {
   501  			return nil, err
   502  		}
   503  		err = jsonx.Unmarshal(paging.Value, &value)
   504  		if err != nil {
   505  			return nil, err
   506  		}
   507  		values = append(values, value...)
   508  		if n >= 0 {
   509  			n--
   510  		}
   511  		if n == 0 || len(paging.NextLink) == 0 {
   512  			return values, nil
   513  		}
   514  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   515  		if ctx != nil {
   516  			req = req.WithContext(ctx)
   517  		}
   518  		res, err = r.client.Do(req)
   519  		if err != nil {
   520  			return nil, err
   521  		}
   522  	}
   523  }
   524  
   525  // GetN performs GET request for SingleValueLegacyExtendedProperty collection, max N pages
   526  func (r *CalendarSingleValueExtendedPropertiesCollectionRequest) GetN(ctx context.Context, n int) ([]SingleValueLegacyExtendedProperty, error) {
   527  	var query string
   528  	if r.query != nil {
   529  		query = "?" + r.query.Encode()
   530  	}
   531  	return r.Paging(ctx, "GET", query, nil, n)
   532  }
   533  
   534  // Get performs GET request for SingleValueLegacyExtendedProperty collection
   535  func (r *CalendarSingleValueExtendedPropertiesCollectionRequest) Get(ctx context.Context) ([]SingleValueLegacyExtendedProperty, error) {
   536  	return r.GetN(ctx, 0)
   537  }
   538  
   539  // Add performs POST request for SingleValueLegacyExtendedProperty collection
   540  func (r *CalendarSingleValueExtendedPropertiesCollectionRequest) Add(ctx context.Context, reqObj *SingleValueLegacyExtendedProperty) (resObj *SingleValueLegacyExtendedProperty, err error) {
   541  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   542  	return
   543  }
   544  
   545  // Calendars returns request builder for Calendar collection
   546  func (b *CalendarGroupRequestBuilder) Calendars() *CalendarGroupCalendarsCollectionRequestBuilder {
   547  	bb := &CalendarGroupCalendarsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   548  	bb.baseURL += "/calendars"
   549  	return bb
   550  }
   551  
   552  // CalendarGroupCalendarsCollectionRequestBuilder is request builder for Calendar collection
   553  type CalendarGroupCalendarsCollectionRequestBuilder struct{ BaseRequestBuilder }
   554  
   555  // Request returns request for Calendar collection
   556  func (b *CalendarGroupCalendarsCollectionRequestBuilder) Request() *CalendarGroupCalendarsCollectionRequest {
   557  	return &CalendarGroupCalendarsCollectionRequest{
   558  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   559  	}
   560  }
   561  
   562  // ID returns request builder for Calendar item
   563  func (b *CalendarGroupCalendarsCollectionRequestBuilder) ID(id string) *CalendarRequestBuilder {
   564  	bb := &CalendarRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   565  	bb.baseURL += "/" + id
   566  	return bb
   567  }
   568  
   569  // CalendarGroupCalendarsCollectionRequest is request for Calendar collection
   570  type CalendarGroupCalendarsCollectionRequest struct{ BaseRequest }
   571  
   572  // Paging perfoms paging operation for Calendar collection
   573  func (r *CalendarGroupCalendarsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Calendar, error) {
   574  	req, err := r.NewJSONRequest(method, path, obj)
   575  	if err != nil {
   576  		return nil, err
   577  	}
   578  	if ctx != nil {
   579  		req = req.WithContext(ctx)
   580  	}
   581  	res, err := r.client.Do(req)
   582  	if err != nil {
   583  		return nil, err
   584  	}
   585  	var values []Calendar
   586  	for {
   587  		if res.StatusCode != http.StatusOK {
   588  			b, _ := ioutil.ReadAll(res.Body)
   589  			res.Body.Close()
   590  			errRes := &ErrorResponse{Response: res}
   591  			err := jsonx.Unmarshal(b, errRes)
   592  			if err != nil {
   593  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   594  			}
   595  			return nil, errRes
   596  		}
   597  		var (
   598  			paging Paging
   599  			value  []Calendar
   600  		)
   601  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   602  		res.Body.Close()
   603  		if err != nil {
   604  			return nil, err
   605  		}
   606  		err = jsonx.Unmarshal(paging.Value, &value)
   607  		if err != nil {
   608  			return nil, err
   609  		}
   610  		values = append(values, value...)
   611  		if n >= 0 {
   612  			n--
   613  		}
   614  		if n == 0 || len(paging.NextLink) == 0 {
   615  			return values, nil
   616  		}
   617  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   618  		if ctx != nil {
   619  			req = req.WithContext(ctx)
   620  		}
   621  		res, err = r.client.Do(req)
   622  		if err != nil {
   623  			return nil, err
   624  		}
   625  	}
   626  }
   627  
   628  // GetN performs GET request for Calendar collection, max N pages
   629  func (r *CalendarGroupCalendarsCollectionRequest) GetN(ctx context.Context, n int) ([]Calendar, error) {
   630  	var query string
   631  	if r.query != nil {
   632  		query = "?" + r.query.Encode()
   633  	}
   634  	return r.Paging(ctx, "GET", query, nil, n)
   635  }
   636  
   637  // Get performs GET request for Calendar collection
   638  func (r *CalendarGroupCalendarsCollectionRequest) Get(ctx context.Context) ([]Calendar, error) {
   639  	return r.GetN(ctx, 0)
   640  }
   641  
   642  // Add performs POST request for Calendar collection
   643  func (r *CalendarGroupCalendarsCollectionRequest) Add(ctx context.Context, reqObj *Calendar) (resObj *Calendar, err error) {
   644  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   645  	return
   646  }