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