github.com/yaegashi/msgraph.go@v0.1.4/v1.0/ActionPlanner.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  // Buckets returns request builder for PlannerBucket collection
    15  func (b *PlannerRequestBuilder) Buckets() *PlannerBucketsCollectionRequestBuilder {
    16  	bb := &PlannerBucketsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
    17  	bb.baseURL += "/buckets"
    18  	return bb
    19  }
    20  
    21  // PlannerBucketsCollectionRequestBuilder is request builder for PlannerBucket collection
    22  type PlannerBucketsCollectionRequestBuilder struct{ BaseRequestBuilder }
    23  
    24  // Request returns request for PlannerBucket collection
    25  func (b *PlannerBucketsCollectionRequestBuilder) Request() *PlannerBucketsCollectionRequest {
    26  	return &PlannerBucketsCollectionRequest{
    27  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
    28  	}
    29  }
    30  
    31  // ID returns request builder for PlannerBucket item
    32  func (b *PlannerBucketsCollectionRequestBuilder) ID(id string) *PlannerBucketRequestBuilder {
    33  	bb := &PlannerBucketRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
    34  	bb.baseURL += "/" + id
    35  	return bb
    36  }
    37  
    38  // PlannerBucketsCollectionRequest is request for PlannerBucket collection
    39  type PlannerBucketsCollectionRequest struct{ BaseRequest }
    40  
    41  // Paging perfoms paging operation for PlannerBucket collection
    42  func (r *PlannerBucketsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]PlannerBucket, error) {
    43  	req, err := r.NewJSONRequest(method, path, obj)
    44  	if err != nil {
    45  		return nil, err
    46  	}
    47  	if ctx != nil {
    48  		req = req.WithContext(ctx)
    49  	}
    50  	res, err := r.client.Do(req)
    51  	if err != nil {
    52  		return nil, err
    53  	}
    54  	var values []PlannerBucket
    55  	for {
    56  		if res.StatusCode != http.StatusOK {
    57  			b, _ := ioutil.ReadAll(res.Body)
    58  			res.Body.Close()
    59  			errRes := &ErrorResponse{Response: res}
    60  			err := jsonx.Unmarshal(b, errRes)
    61  			if err != nil {
    62  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
    63  			}
    64  			return nil, errRes
    65  		}
    66  		var (
    67  			paging Paging
    68  			value  []PlannerBucket
    69  		)
    70  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
    71  		res.Body.Close()
    72  		if err != nil {
    73  			return nil, err
    74  		}
    75  		err = jsonx.Unmarshal(paging.Value, &value)
    76  		if err != nil {
    77  			return nil, err
    78  		}
    79  		values = append(values, value...)
    80  		if n >= 0 {
    81  			n--
    82  		}
    83  		if n == 0 || len(paging.NextLink) == 0 {
    84  			return values, nil
    85  		}
    86  		req, err = http.NewRequest("GET", paging.NextLink, nil)
    87  		if ctx != nil {
    88  			req = req.WithContext(ctx)
    89  		}
    90  		res, err = r.client.Do(req)
    91  		if err != nil {
    92  			return nil, err
    93  		}
    94  	}
    95  }
    96  
    97  // GetN performs GET request for PlannerBucket collection, max N pages
    98  func (r *PlannerBucketsCollectionRequest) GetN(ctx context.Context, n int) ([]PlannerBucket, error) {
    99  	var query string
   100  	if r.query != nil {
   101  		query = "?" + r.query.Encode()
   102  	}
   103  	return r.Paging(ctx, "GET", query, nil, n)
   104  }
   105  
   106  // Get performs GET request for PlannerBucket collection
   107  func (r *PlannerBucketsCollectionRequest) Get(ctx context.Context) ([]PlannerBucket, error) {
   108  	return r.GetN(ctx, 0)
   109  }
   110  
   111  // Add performs POST request for PlannerBucket collection
   112  func (r *PlannerBucketsCollectionRequest) Add(ctx context.Context, reqObj *PlannerBucket) (resObj *PlannerBucket, err error) {
   113  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   114  	return
   115  }
   116  
   117  // Plans returns request builder for PlannerPlan collection
   118  func (b *PlannerRequestBuilder) Plans() *PlannerPlansCollectionRequestBuilder {
   119  	bb := &PlannerPlansCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   120  	bb.baseURL += "/plans"
   121  	return bb
   122  }
   123  
   124  // PlannerPlansCollectionRequestBuilder is request builder for PlannerPlan collection
   125  type PlannerPlansCollectionRequestBuilder struct{ BaseRequestBuilder }
   126  
   127  // Request returns request for PlannerPlan collection
   128  func (b *PlannerPlansCollectionRequestBuilder) Request() *PlannerPlansCollectionRequest {
   129  	return &PlannerPlansCollectionRequest{
   130  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   131  	}
   132  }
   133  
   134  // ID returns request builder for PlannerPlan item
   135  func (b *PlannerPlansCollectionRequestBuilder) ID(id string) *PlannerPlanRequestBuilder {
   136  	bb := &PlannerPlanRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   137  	bb.baseURL += "/" + id
   138  	return bb
   139  }
   140  
   141  // PlannerPlansCollectionRequest is request for PlannerPlan collection
   142  type PlannerPlansCollectionRequest struct{ BaseRequest }
   143  
   144  // Paging perfoms paging operation for PlannerPlan collection
   145  func (r *PlannerPlansCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]PlannerPlan, error) {
   146  	req, err := r.NewJSONRequest(method, path, obj)
   147  	if err != nil {
   148  		return nil, err
   149  	}
   150  	if ctx != nil {
   151  		req = req.WithContext(ctx)
   152  	}
   153  	res, err := r.client.Do(req)
   154  	if err != nil {
   155  		return nil, err
   156  	}
   157  	var values []PlannerPlan
   158  	for {
   159  		if res.StatusCode != http.StatusOK {
   160  			b, _ := ioutil.ReadAll(res.Body)
   161  			res.Body.Close()
   162  			errRes := &ErrorResponse{Response: res}
   163  			err := jsonx.Unmarshal(b, errRes)
   164  			if err != nil {
   165  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   166  			}
   167  			return nil, errRes
   168  		}
   169  		var (
   170  			paging Paging
   171  			value  []PlannerPlan
   172  		)
   173  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   174  		res.Body.Close()
   175  		if err != nil {
   176  			return nil, err
   177  		}
   178  		err = jsonx.Unmarshal(paging.Value, &value)
   179  		if err != nil {
   180  			return nil, err
   181  		}
   182  		values = append(values, value...)
   183  		if n >= 0 {
   184  			n--
   185  		}
   186  		if n == 0 || len(paging.NextLink) == 0 {
   187  			return values, nil
   188  		}
   189  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   190  		if ctx != nil {
   191  			req = req.WithContext(ctx)
   192  		}
   193  		res, err = r.client.Do(req)
   194  		if err != nil {
   195  			return nil, err
   196  		}
   197  	}
   198  }
   199  
   200  // GetN performs GET request for PlannerPlan collection, max N pages
   201  func (r *PlannerPlansCollectionRequest) GetN(ctx context.Context, n int) ([]PlannerPlan, error) {
   202  	var query string
   203  	if r.query != nil {
   204  		query = "?" + r.query.Encode()
   205  	}
   206  	return r.Paging(ctx, "GET", query, nil, n)
   207  }
   208  
   209  // Get performs GET request for PlannerPlan collection
   210  func (r *PlannerPlansCollectionRequest) Get(ctx context.Context) ([]PlannerPlan, error) {
   211  	return r.GetN(ctx, 0)
   212  }
   213  
   214  // Add performs POST request for PlannerPlan collection
   215  func (r *PlannerPlansCollectionRequest) Add(ctx context.Context, reqObj *PlannerPlan) (resObj *PlannerPlan, err error) {
   216  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   217  	return
   218  }
   219  
   220  // Tasks returns request builder for PlannerTask collection
   221  func (b *PlannerRequestBuilder) Tasks() *PlannerTasksCollectionRequestBuilder {
   222  	bb := &PlannerTasksCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   223  	bb.baseURL += "/tasks"
   224  	return bb
   225  }
   226  
   227  // PlannerTasksCollectionRequestBuilder is request builder for PlannerTask collection
   228  type PlannerTasksCollectionRequestBuilder struct{ BaseRequestBuilder }
   229  
   230  // Request returns request for PlannerTask collection
   231  func (b *PlannerTasksCollectionRequestBuilder) Request() *PlannerTasksCollectionRequest {
   232  	return &PlannerTasksCollectionRequest{
   233  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   234  	}
   235  }
   236  
   237  // ID returns request builder for PlannerTask item
   238  func (b *PlannerTasksCollectionRequestBuilder) ID(id string) *PlannerTaskRequestBuilder {
   239  	bb := &PlannerTaskRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   240  	bb.baseURL += "/" + id
   241  	return bb
   242  }
   243  
   244  // PlannerTasksCollectionRequest is request for PlannerTask collection
   245  type PlannerTasksCollectionRequest struct{ BaseRequest }
   246  
   247  // Paging perfoms paging operation for PlannerTask collection
   248  func (r *PlannerTasksCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]PlannerTask, error) {
   249  	req, err := r.NewJSONRequest(method, path, obj)
   250  	if err != nil {
   251  		return nil, err
   252  	}
   253  	if ctx != nil {
   254  		req = req.WithContext(ctx)
   255  	}
   256  	res, err := r.client.Do(req)
   257  	if err != nil {
   258  		return nil, err
   259  	}
   260  	var values []PlannerTask
   261  	for {
   262  		if res.StatusCode != http.StatusOK {
   263  			b, _ := ioutil.ReadAll(res.Body)
   264  			res.Body.Close()
   265  			errRes := &ErrorResponse{Response: res}
   266  			err := jsonx.Unmarshal(b, errRes)
   267  			if err != nil {
   268  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   269  			}
   270  			return nil, errRes
   271  		}
   272  		var (
   273  			paging Paging
   274  			value  []PlannerTask
   275  		)
   276  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   277  		res.Body.Close()
   278  		if err != nil {
   279  			return nil, err
   280  		}
   281  		err = jsonx.Unmarshal(paging.Value, &value)
   282  		if err != nil {
   283  			return nil, err
   284  		}
   285  		values = append(values, value...)
   286  		if n >= 0 {
   287  			n--
   288  		}
   289  		if n == 0 || len(paging.NextLink) == 0 {
   290  			return values, nil
   291  		}
   292  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   293  		if ctx != nil {
   294  			req = req.WithContext(ctx)
   295  		}
   296  		res, err = r.client.Do(req)
   297  		if err != nil {
   298  			return nil, err
   299  		}
   300  	}
   301  }
   302  
   303  // GetN performs GET request for PlannerTask collection, max N pages
   304  func (r *PlannerTasksCollectionRequest) GetN(ctx context.Context, n int) ([]PlannerTask, error) {
   305  	var query string
   306  	if r.query != nil {
   307  		query = "?" + r.query.Encode()
   308  	}
   309  	return r.Paging(ctx, "GET", query, nil, n)
   310  }
   311  
   312  // Get performs GET request for PlannerTask collection
   313  func (r *PlannerTasksCollectionRequest) Get(ctx context.Context) ([]PlannerTask, error) {
   314  	return r.GetN(ctx, 0)
   315  }
   316  
   317  // Add performs POST request for PlannerTask collection
   318  func (r *PlannerTasksCollectionRequest) Add(ctx context.Context, reqObj *PlannerTask) (resObj *PlannerTask, err error) {
   319  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   320  	return
   321  }
   322  
   323  // Tasks returns request builder for PlannerTask collection
   324  func (b *PlannerBucketRequestBuilder) Tasks() *PlannerBucketTasksCollectionRequestBuilder {
   325  	bb := &PlannerBucketTasksCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   326  	bb.baseURL += "/tasks"
   327  	return bb
   328  }
   329  
   330  // PlannerBucketTasksCollectionRequestBuilder is request builder for PlannerTask collection
   331  type PlannerBucketTasksCollectionRequestBuilder struct{ BaseRequestBuilder }
   332  
   333  // Request returns request for PlannerTask collection
   334  func (b *PlannerBucketTasksCollectionRequestBuilder) Request() *PlannerBucketTasksCollectionRequest {
   335  	return &PlannerBucketTasksCollectionRequest{
   336  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   337  	}
   338  }
   339  
   340  // ID returns request builder for PlannerTask item
   341  func (b *PlannerBucketTasksCollectionRequestBuilder) ID(id string) *PlannerTaskRequestBuilder {
   342  	bb := &PlannerTaskRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   343  	bb.baseURL += "/" + id
   344  	return bb
   345  }
   346  
   347  // PlannerBucketTasksCollectionRequest is request for PlannerTask collection
   348  type PlannerBucketTasksCollectionRequest struct{ BaseRequest }
   349  
   350  // Paging perfoms paging operation for PlannerTask collection
   351  func (r *PlannerBucketTasksCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]PlannerTask, error) {
   352  	req, err := r.NewJSONRequest(method, path, obj)
   353  	if err != nil {
   354  		return nil, err
   355  	}
   356  	if ctx != nil {
   357  		req = req.WithContext(ctx)
   358  	}
   359  	res, err := r.client.Do(req)
   360  	if err != nil {
   361  		return nil, err
   362  	}
   363  	var values []PlannerTask
   364  	for {
   365  		if res.StatusCode != http.StatusOK {
   366  			b, _ := ioutil.ReadAll(res.Body)
   367  			res.Body.Close()
   368  			errRes := &ErrorResponse{Response: res}
   369  			err := jsonx.Unmarshal(b, errRes)
   370  			if err != nil {
   371  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   372  			}
   373  			return nil, errRes
   374  		}
   375  		var (
   376  			paging Paging
   377  			value  []PlannerTask
   378  		)
   379  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   380  		res.Body.Close()
   381  		if err != nil {
   382  			return nil, err
   383  		}
   384  		err = jsonx.Unmarshal(paging.Value, &value)
   385  		if err != nil {
   386  			return nil, err
   387  		}
   388  		values = append(values, value...)
   389  		if n >= 0 {
   390  			n--
   391  		}
   392  		if n == 0 || len(paging.NextLink) == 0 {
   393  			return values, nil
   394  		}
   395  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   396  		if ctx != nil {
   397  			req = req.WithContext(ctx)
   398  		}
   399  		res, err = r.client.Do(req)
   400  		if err != nil {
   401  			return nil, err
   402  		}
   403  	}
   404  }
   405  
   406  // GetN performs GET request for PlannerTask collection, max N pages
   407  func (r *PlannerBucketTasksCollectionRequest) GetN(ctx context.Context, n int) ([]PlannerTask, error) {
   408  	var query string
   409  	if r.query != nil {
   410  		query = "?" + r.query.Encode()
   411  	}
   412  	return r.Paging(ctx, "GET", query, nil, n)
   413  }
   414  
   415  // Get performs GET request for PlannerTask collection
   416  func (r *PlannerBucketTasksCollectionRequest) Get(ctx context.Context) ([]PlannerTask, error) {
   417  	return r.GetN(ctx, 0)
   418  }
   419  
   420  // Add performs POST request for PlannerTask collection
   421  func (r *PlannerBucketTasksCollectionRequest) Add(ctx context.Context, reqObj *PlannerTask) (resObj *PlannerTask, err error) {
   422  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   423  	return
   424  }
   425  
   426  // Plans returns request builder for PlannerPlan collection
   427  func (b *PlannerGroupRequestBuilder) Plans() *PlannerGroupPlansCollectionRequestBuilder {
   428  	bb := &PlannerGroupPlansCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   429  	bb.baseURL += "/plans"
   430  	return bb
   431  }
   432  
   433  // PlannerGroupPlansCollectionRequestBuilder is request builder for PlannerPlan collection
   434  type PlannerGroupPlansCollectionRequestBuilder struct{ BaseRequestBuilder }
   435  
   436  // Request returns request for PlannerPlan collection
   437  func (b *PlannerGroupPlansCollectionRequestBuilder) Request() *PlannerGroupPlansCollectionRequest {
   438  	return &PlannerGroupPlansCollectionRequest{
   439  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   440  	}
   441  }
   442  
   443  // ID returns request builder for PlannerPlan item
   444  func (b *PlannerGroupPlansCollectionRequestBuilder) ID(id string) *PlannerPlanRequestBuilder {
   445  	bb := &PlannerPlanRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   446  	bb.baseURL += "/" + id
   447  	return bb
   448  }
   449  
   450  // PlannerGroupPlansCollectionRequest is request for PlannerPlan collection
   451  type PlannerGroupPlansCollectionRequest struct{ BaseRequest }
   452  
   453  // Paging perfoms paging operation for PlannerPlan collection
   454  func (r *PlannerGroupPlansCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]PlannerPlan, error) {
   455  	req, err := r.NewJSONRequest(method, path, obj)
   456  	if err != nil {
   457  		return nil, err
   458  	}
   459  	if ctx != nil {
   460  		req = req.WithContext(ctx)
   461  	}
   462  	res, err := r.client.Do(req)
   463  	if err != nil {
   464  		return nil, err
   465  	}
   466  	var values []PlannerPlan
   467  	for {
   468  		if res.StatusCode != http.StatusOK {
   469  			b, _ := ioutil.ReadAll(res.Body)
   470  			res.Body.Close()
   471  			errRes := &ErrorResponse{Response: res}
   472  			err := jsonx.Unmarshal(b, errRes)
   473  			if err != nil {
   474  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   475  			}
   476  			return nil, errRes
   477  		}
   478  		var (
   479  			paging Paging
   480  			value  []PlannerPlan
   481  		)
   482  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   483  		res.Body.Close()
   484  		if err != nil {
   485  			return nil, err
   486  		}
   487  		err = jsonx.Unmarshal(paging.Value, &value)
   488  		if err != nil {
   489  			return nil, err
   490  		}
   491  		values = append(values, value...)
   492  		if n >= 0 {
   493  			n--
   494  		}
   495  		if n == 0 || len(paging.NextLink) == 0 {
   496  			return values, nil
   497  		}
   498  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   499  		if ctx != nil {
   500  			req = req.WithContext(ctx)
   501  		}
   502  		res, err = r.client.Do(req)
   503  		if err != nil {
   504  			return nil, err
   505  		}
   506  	}
   507  }
   508  
   509  // GetN performs GET request for PlannerPlan collection, max N pages
   510  func (r *PlannerGroupPlansCollectionRequest) GetN(ctx context.Context, n int) ([]PlannerPlan, error) {
   511  	var query string
   512  	if r.query != nil {
   513  		query = "?" + r.query.Encode()
   514  	}
   515  	return r.Paging(ctx, "GET", query, nil, n)
   516  }
   517  
   518  // Get performs GET request for PlannerPlan collection
   519  func (r *PlannerGroupPlansCollectionRequest) Get(ctx context.Context) ([]PlannerPlan, error) {
   520  	return r.GetN(ctx, 0)
   521  }
   522  
   523  // Add performs POST request for PlannerPlan collection
   524  func (r *PlannerGroupPlansCollectionRequest) Add(ctx context.Context, reqObj *PlannerPlan) (resObj *PlannerPlan, err error) {
   525  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   526  	return
   527  }
   528  
   529  // Buckets returns request builder for PlannerBucket collection
   530  func (b *PlannerPlanRequestBuilder) Buckets() *PlannerPlanBucketsCollectionRequestBuilder {
   531  	bb := &PlannerPlanBucketsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   532  	bb.baseURL += "/buckets"
   533  	return bb
   534  }
   535  
   536  // PlannerPlanBucketsCollectionRequestBuilder is request builder for PlannerBucket collection
   537  type PlannerPlanBucketsCollectionRequestBuilder struct{ BaseRequestBuilder }
   538  
   539  // Request returns request for PlannerBucket collection
   540  func (b *PlannerPlanBucketsCollectionRequestBuilder) Request() *PlannerPlanBucketsCollectionRequest {
   541  	return &PlannerPlanBucketsCollectionRequest{
   542  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   543  	}
   544  }
   545  
   546  // ID returns request builder for PlannerBucket item
   547  func (b *PlannerPlanBucketsCollectionRequestBuilder) ID(id string) *PlannerBucketRequestBuilder {
   548  	bb := &PlannerBucketRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   549  	bb.baseURL += "/" + id
   550  	return bb
   551  }
   552  
   553  // PlannerPlanBucketsCollectionRequest is request for PlannerBucket collection
   554  type PlannerPlanBucketsCollectionRequest struct{ BaseRequest }
   555  
   556  // Paging perfoms paging operation for PlannerBucket collection
   557  func (r *PlannerPlanBucketsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]PlannerBucket, error) {
   558  	req, err := r.NewJSONRequest(method, path, obj)
   559  	if err != nil {
   560  		return nil, err
   561  	}
   562  	if ctx != nil {
   563  		req = req.WithContext(ctx)
   564  	}
   565  	res, err := r.client.Do(req)
   566  	if err != nil {
   567  		return nil, err
   568  	}
   569  	var values []PlannerBucket
   570  	for {
   571  		if res.StatusCode != http.StatusOK {
   572  			b, _ := ioutil.ReadAll(res.Body)
   573  			res.Body.Close()
   574  			errRes := &ErrorResponse{Response: res}
   575  			err := jsonx.Unmarshal(b, errRes)
   576  			if err != nil {
   577  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   578  			}
   579  			return nil, errRes
   580  		}
   581  		var (
   582  			paging Paging
   583  			value  []PlannerBucket
   584  		)
   585  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   586  		res.Body.Close()
   587  		if err != nil {
   588  			return nil, err
   589  		}
   590  		err = jsonx.Unmarshal(paging.Value, &value)
   591  		if err != nil {
   592  			return nil, err
   593  		}
   594  		values = append(values, value...)
   595  		if n >= 0 {
   596  			n--
   597  		}
   598  		if n == 0 || len(paging.NextLink) == 0 {
   599  			return values, nil
   600  		}
   601  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   602  		if ctx != nil {
   603  			req = req.WithContext(ctx)
   604  		}
   605  		res, err = r.client.Do(req)
   606  		if err != nil {
   607  			return nil, err
   608  		}
   609  	}
   610  }
   611  
   612  // GetN performs GET request for PlannerBucket collection, max N pages
   613  func (r *PlannerPlanBucketsCollectionRequest) GetN(ctx context.Context, n int) ([]PlannerBucket, error) {
   614  	var query string
   615  	if r.query != nil {
   616  		query = "?" + r.query.Encode()
   617  	}
   618  	return r.Paging(ctx, "GET", query, nil, n)
   619  }
   620  
   621  // Get performs GET request for PlannerBucket collection
   622  func (r *PlannerPlanBucketsCollectionRequest) Get(ctx context.Context) ([]PlannerBucket, error) {
   623  	return r.GetN(ctx, 0)
   624  }
   625  
   626  // Add performs POST request for PlannerBucket collection
   627  func (r *PlannerPlanBucketsCollectionRequest) Add(ctx context.Context, reqObj *PlannerBucket) (resObj *PlannerBucket, err error) {
   628  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   629  	return
   630  }
   631  
   632  // Details is navigation property
   633  func (b *PlannerPlanRequestBuilder) Details() *PlannerPlanDetailsRequestBuilder {
   634  	bb := &PlannerPlanDetailsRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   635  	bb.baseURL += "/details"
   636  	return bb
   637  }
   638  
   639  // Tasks returns request builder for PlannerTask collection
   640  func (b *PlannerPlanRequestBuilder) Tasks() *PlannerPlanTasksCollectionRequestBuilder {
   641  	bb := &PlannerPlanTasksCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   642  	bb.baseURL += "/tasks"
   643  	return bb
   644  }
   645  
   646  // PlannerPlanTasksCollectionRequestBuilder is request builder for PlannerTask collection
   647  type PlannerPlanTasksCollectionRequestBuilder struct{ BaseRequestBuilder }
   648  
   649  // Request returns request for PlannerTask collection
   650  func (b *PlannerPlanTasksCollectionRequestBuilder) Request() *PlannerPlanTasksCollectionRequest {
   651  	return &PlannerPlanTasksCollectionRequest{
   652  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   653  	}
   654  }
   655  
   656  // ID returns request builder for PlannerTask item
   657  func (b *PlannerPlanTasksCollectionRequestBuilder) ID(id string) *PlannerTaskRequestBuilder {
   658  	bb := &PlannerTaskRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   659  	bb.baseURL += "/" + id
   660  	return bb
   661  }
   662  
   663  // PlannerPlanTasksCollectionRequest is request for PlannerTask collection
   664  type PlannerPlanTasksCollectionRequest struct{ BaseRequest }
   665  
   666  // Paging perfoms paging operation for PlannerTask collection
   667  func (r *PlannerPlanTasksCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]PlannerTask, error) {
   668  	req, err := r.NewJSONRequest(method, path, obj)
   669  	if err != nil {
   670  		return nil, err
   671  	}
   672  	if ctx != nil {
   673  		req = req.WithContext(ctx)
   674  	}
   675  	res, err := r.client.Do(req)
   676  	if err != nil {
   677  		return nil, err
   678  	}
   679  	var values []PlannerTask
   680  	for {
   681  		if res.StatusCode != http.StatusOK {
   682  			b, _ := ioutil.ReadAll(res.Body)
   683  			res.Body.Close()
   684  			errRes := &ErrorResponse{Response: res}
   685  			err := jsonx.Unmarshal(b, errRes)
   686  			if err != nil {
   687  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   688  			}
   689  			return nil, errRes
   690  		}
   691  		var (
   692  			paging Paging
   693  			value  []PlannerTask
   694  		)
   695  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   696  		res.Body.Close()
   697  		if err != nil {
   698  			return nil, err
   699  		}
   700  		err = jsonx.Unmarshal(paging.Value, &value)
   701  		if err != nil {
   702  			return nil, err
   703  		}
   704  		values = append(values, value...)
   705  		if n >= 0 {
   706  			n--
   707  		}
   708  		if n == 0 || len(paging.NextLink) == 0 {
   709  			return values, nil
   710  		}
   711  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   712  		if ctx != nil {
   713  			req = req.WithContext(ctx)
   714  		}
   715  		res, err = r.client.Do(req)
   716  		if err != nil {
   717  			return nil, err
   718  		}
   719  	}
   720  }
   721  
   722  // GetN performs GET request for PlannerTask collection, max N pages
   723  func (r *PlannerPlanTasksCollectionRequest) GetN(ctx context.Context, n int) ([]PlannerTask, error) {
   724  	var query string
   725  	if r.query != nil {
   726  		query = "?" + r.query.Encode()
   727  	}
   728  	return r.Paging(ctx, "GET", query, nil, n)
   729  }
   730  
   731  // Get performs GET request for PlannerTask collection
   732  func (r *PlannerPlanTasksCollectionRequest) Get(ctx context.Context) ([]PlannerTask, error) {
   733  	return r.GetN(ctx, 0)
   734  }
   735  
   736  // Add performs POST request for PlannerTask collection
   737  func (r *PlannerPlanTasksCollectionRequest) Add(ctx context.Context, reqObj *PlannerTask) (resObj *PlannerTask, err error) {
   738  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   739  	return
   740  }
   741  
   742  // AssignedToTaskBoardFormat is navigation property
   743  func (b *PlannerTaskRequestBuilder) AssignedToTaskBoardFormat() *PlannerAssignedToTaskBoardTaskFormatRequestBuilder {
   744  	bb := &PlannerAssignedToTaskBoardTaskFormatRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   745  	bb.baseURL += "/assignedToTaskBoardFormat"
   746  	return bb
   747  }
   748  
   749  // BucketTaskBoardFormat is navigation property
   750  func (b *PlannerTaskRequestBuilder) BucketTaskBoardFormat() *PlannerBucketTaskBoardTaskFormatRequestBuilder {
   751  	bb := &PlannerBucketTaskBoardTaskFormatRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   752  	bb.baseURL += "/bucketTaskBoardFormat"
   753  	return bb
   754  }
   755  
   756  // Details is navigation property
   757  func (b *PlannerTaskRequestBuilder) Details() *PlannerTaskDetailsRequestBuilder {
   758  	bb := &PlannerTaskDetailsRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   759  	bb.baseURL += "/details"
   760  	return bb
   761  }
   762  
   763  // ProgressTaskBoardFormat is navigation property
   764  func (b *PlannerTaskRequestBuilder) ProgressTaskBoardFormat() *PlannerProgressTaskBoardTaskFormatRequestBuilder {
   765  	bb := &PlannerProgressTaskBoardTaskFormatRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   766  	bb.baseURL += "/progressTaskBoardFormat"
   767  	return bb
   768  }
   769  
   770  // Plans returns request builder for PlannerPlan collection
   771  func (b *PlannerUserRequestBuilder) Plans() *PlannerUserPlansCollectionRequestBuilder {
   772  	bb := &PlannerUserPlansCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   773  	bb.baseURL += "/plans"
   774  	return bb
   775  }
   776  
   777  // PlannerUserPlansCollectionRequestBuilder is request builder for PlannerPlan collection
   778  type PlannerUserPlansCollectionRequestBuilder struct{ BaseRequestBuilder }
   779  
   780  // Request returns request for PlannerPlan collection
   781  func (b *PlannerUserPlansCollectionRequestBuilder) Request() *PlannerUserPlansCollectionRequest {
   782  	return &PlannerUserPlansCollectionRequest{
   783  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   784  	}
   785  }
   786  
   787  // ID returns request builder for PlannerPlan item
   788  func (b *PlannerUserPlansCollectionRequestBuilder) ID(id string) *PlannerPlanRequestBuilder {
   789  	bb := &PlannerPlanRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   790  	bb.baseURL += "/" + id
   791  	return bb
   792  }
   793  
   794  // PlannerUserPlansCollectionRequest is request for PlannerPlan collection
   795  type PlannerUserPlansCollectionRequest struct{ BaseRequest }
   796  
   797  // Paging perfoms paging operation for PlannerPlan collection
   798  func (r *PlannerUserPlansCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]PlannerPlan, error) {
   799  	req, err := r.NewJSONRequest(method, path, obj)
   800  	if err != nil {
   801  		return nil, err
   802  	}
   803  	if ctx != nil {
   804  		req = req.WithContext(ctx)
   805  	}
   806  	res, err := r.client.Do(req)
   807  	if err != nil {
   808  		return nil, err
   809  	}
   810  	var values []PlannerPlan
   811  	for {
   812  		if res.StatusCode != http.StatusOK {
   813  			b, _ := ioutil.ReadAll(res.Body)
   814  			res.Body.Close()
   815  			errRes := &ErrorResponse{Response: res}
   816  			err := jsonx.Unmarshal(b, errRes)
   817  			if err != nil {
   818  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   819  			}
   820  			return nil, errRes
   821  		}
   822  		var (
   823  			paging Paging
   824  			value  []PlannerPlan
   825  		)
   826  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   827  		res.Body.Close()
   828  		if err != nil {
   829  			return nil, err
   830  		}
   831  		err = jsonx.Unmarshal(paging.Value, &value)
   832  		if err != nil {
   833  			return nil, err
   834  		}
   835  		values = append(values, value...)
   836  		if n >= 0 {
   837  			n--
   838  		}
   839  		if n == 0 || len(paging.NextLink) == 0 {
   840  			return values, nil
   841  		}
   842  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   843  		if ctx != nil {
   844  			req = req.WithContext(ctx)
   845  		}
   846  		res, err = r.client.Do(req)
   847  		if err != nil {
   848  			return nil, err
   849  		}
   850  	}
   851  }
   852  
   853  // GetN performs GET request for PlannerPlan collection, max N pages
   854  func (r *PlannerUserPlansCollectionRequest) GetN(ctx context.Context, n int) ([]PlannerPlan, error) {
   855  	var query string
   856  	if r.query != nil {
   857  		query = "?" + r.query.Encode()
   858  	}
   859  	return r.Paging(ctx, "GET", query, nil, n)
   860  }
   861  
   862  // Get performs GET request for PlannerPlan collection
   863  func (r *PlannerUserPlansCollectionRequest) Get(ctx context.Context) ([]PlannerPlan, error) {
   864  	return r.GetN(ctx, 0)
   865  }
   866  
   867  // Add performs POST request for PlannerPlan collection
   868  func (r *PlannerUserPlansCollectionRequest) Add(ctx context.Context, reqObj *PlannerPlan) (resObj *PlannerPlan, err error) {
   869  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   870  	return
   871  }
   872  
   873  // Tasks returns request builder for PlannerTask collection
   874  func (b *PlannerUserRequestBuilder) Tasks() *PlannerUserTasksCollectionRequestBuilder {
   875  	bb := &PlannerUserTasksCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   876  	bb.baseURL += "/tasks"
   877  	return bb
   878  }
   879  
   880  // PlannerUserTasksCollectionRequestBuilder is request builder for PlannerTask collection
   881  type PlannerUserTasksCollectionRequestBuilder struct{ BaseRequestBuilder }
   882  
   883  // Request returns request for PlannerTask collection
   884  func (b *PlannerUserTasksCollectionRequestBuilder) Request() *PlannerUserTasksCollectionRequest {
   885  	return &PlannerUserTasksCollectionRequest{
   886  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   887  	}
   888  }
   889  
   890  // ID returns request builder for PlannerTask item
   891  func (b *PlannerUserTasksCollectionRequestBuilder) ID(id string) *PlannerTaskRequestBuilder {
   892  	bb := &PlannerTaskRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   893  	bb.baseURL += "/" + id
   894  	return bb
   895  }
   896  
   897  // PlannerUserTasksCollectionRequest is request for PlannerTask collection
   898  type PlannerUserTasksCollectionRequest struct{ BaseRequest }
   899  
   900  // Paging perfoms paging operation for PlannerTask collection
   901  func (r *PlannerUserTasksCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]PlannerTask, error) {
   902  	req, err := r.NewJSONRequest(method, path, obj)
   903  	if err != nil {
   904  		return nil, err
   905  	}
   906  	if ctx != nil {
   907  		req = req.WithContext(ctx)
   908  	}
   909  	res, err := r.client.Do(req)
   910  	if err != nil {
   911  		return nil, err
   912  	}
   913  	var values []PlannerTask
   914  	for {
   915  		if res.StatusCode != http.StatusOK {
   916  			b, _ := ioutil.ReadAll(res.Body)
   917  			res.Body.Close()
   918  			errRes := &ErrorResponse{Response: res}
   919  			err := jsonx.Unmarshal(b, errRes)
   920  			if err != nil {
   921  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   922  			}
   923  			return nil, errRes
   924  		}
   925  		var (
   926  			paging Paging
   927  			value  []PlannerTask
   928  		)
   929  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   930  		res.Body.Close()
   931  		if err != nil {
   932  			return nil, err
   933  		}
   934  		err = jsonx.Unmarshal(paging.Value, &value)
   935  		if err != nil {
   936  			return nil, err
   937  		}
   938  		values = append(values, value...)
   939  		if n >= 0 {
   940  			n--
   941  		}
   942  		if n == 0 || len(paging.NextLink) == 0 {
   943  			return values, nil
   944  		}
   945  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   946  		if ctx != nil {
   947  			req = req.WithContext(ctx)
   948  		}
   949  		res, err = r.client.Do(req)
   950  		if err != nil {
   951  			return nil, err
   952  		}
   953  	}
   954  }
   955  
   956  // GetN performs GET request for PlannerTask collection, max N pages
   957  func (r *PlannerUserTasksCollectionRequest) GetN(ctx context.Context, n int) ([]PlannerTask, error) {
   958  	var query string
   959  	if r.query != nil {
   960  		query = "?" + r.query.Encode()
   961  	}
   962  	return r.Paging(ctx, "GET", query, nil, n)
   963  }
   964  
   965  // Get performs GET request for PlannerTask collection
   966  func (r *PlannerUserTasksCollectionRequest) Get(ctx context.Context) ([]PlannerTask, error) {
   967  	return r.GetN(ctx, 0)
   968  }
   969  
   970  // Add performs POST request for PlannerTask collection
   971  func (r *PlannerUserTasksCollectionRequest) Add(ctx context.Context, reqObj *PlannerTask) (resObj *PlannerTask, err error) {
   972  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   973  	return
   974  }