github.com/yaegashi/msgraph.go@v0.1.4/v1.0/ActionContact.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  // Extensions returns request builder for Extension collection
    15  func (b *ContactRequestBuilder) Extensions() *ContactExtensionsCollectionRequestBuilder {
    16  	bb := &ContactExtensionsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
    17  	bb.baseURL += "/extensions"
    18  	return bb
    19  }
    20  
    21  // ContactExtensionsCollectionRequestBuilder is request builder for Extension collection
    22  type ContactExtensionsCollectionRequestBuilder struct{ BaseRequestBuilder }
    23  
    24  // Request returns request for Extension collection
    25  func (b *ContactExtensionsCollectionRequestBuilder) Request() *ContactExtensionsCollectionRequest {
    26  	return &ContactExtensionsCollectionRequest{
    27  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
    28  	}
    29  }
    30  
    31  // ID returns request builder for Extension item
    32  func (b *ContactExtensionsCollectionRequestBuilder) ID(id string) *ExtensionRequestBuilder {
    33  	bb := &ExtensionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
    34  	bb.baseURL += "/" + id
    35  	return bb
    36  }
    37  
    38  // ContactExtensionsCollectionRequest is request for Extension collection
    39  type ContactExtensionsCollectionRequest struct{ BaseRequest }
    40  
    41  // Paging perfoms paging operation for Extension collection
    42  func (r *ContactExtensionsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Extension, 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 []Extension
    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  []Extension
    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 Extension collection, max N pages
    98  func (r *ContactExtensionsCollectionRequest) GetN(ctx context.Context, n int) ([]Extension, 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 Extension collection
   107  func (r *ContactExtensionsCollectionRequest) Get(ctx context.Context) ([]Extension, error) {
   108  	return r.GetN(ctx, 0)
   109  }
   110  
   111  // Add performs POST request for Extension collection
   112  func (r *ContactExtensionsCollectionRequest) Add(ctx context.Context, reqObj *Extension) (resObj *Extension, err error) {
   113  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   114  	return
   115  }
   116  
   117  // MultiValueExtendedProperties returns request builder for MultiValueLegacyExtendedProperty collection
   118  func (b *ContactRequestBuilder) MultiValueExtendedProperties() *ContactMultiValueExtendedPropertiesCollectionRequestBuilder {
   119  	bb := &ContactMultiValueExtendedPropertiesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   120  	bb.baseURL += "/multiValueExtendedProperties"
   121  	return bb
   122  }
   123  
   124  // ContactMultiValueExtendedPropertiesCollectionRequestBuilder is request builder for MultiValueLegacyExtendedProperty collection
   125  type ContactMultiValueExtendedPropertiesCollectionRequestBuilder struct{ BaseRequestBuilder }
   126  
   127  // Request returns request for MultiValueLegacyExtendedProperty collection
   128  func (b *ContactMultiValueExtendedPropertiesCollectionRequestBuilder) Request() *ContactMultiValueExtendedPropertiesCollectionRequest {
   129  	return &ContactMultiValueExtendedPropertiesCollectionRequest{
   130  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   131  	}
   132  }
   133  
   134  // ID returns request builder for MultiValueLegacyExtendedProperty item
   135  func (b *ContactMultiValueExtendedPropertiesCollectionRequestBuilder) ID(id string) *MultiValueLegacyExtendedPropertyRequestBuilder {
   136  	bb := &MultiValueLegacyExtendedPropertyRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   137  	bb.baseURL += "/" + id
   138  	return bb
   139  }
   140  
   141  // ContactMultiValueExtendedPropertiesCollectionRequest is request for MultiValueLegacyExtendedProperty collection
   142  type ContactMultiValueExtendedPropertiesCollectionRequest struct{ BaseRequest }
   143  
   144  // Paging perfoms paging operation for MultiValueLegacyExtendedProperty collection
   145  func (r *ContactMultiValueExtendedPropertiesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]MultiValueLegacyExtendedProperty, 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 []MultiValueLegacyExtendedProperty
   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  []MultiValueLegacyExtendedProperty
   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 MultiValueLegacyExtendedProperty collection, max N pages
   201  func (r *ContactMultiValueExtendedPropertiesCollectionRequest) GetN(ctx context.Context, n int) ([]MultiValueLegacyExtendedProperty, 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 MultiValueLegacyExtendedProperty collection
   210  func (r *ContactMultiValueExtendedPropertiesCollectionRequest) Get(ctx context.Context) ([]MultiValueLegacyExtendedProperty, error) {
   211  	return r.GetN(ctx, 0)
   212  }
   213  
   214  // Add performs POST request for MultiValueLegacyExtendedProperty collection
   215  func (r *ContactMultiValueExtendedPropertiesCollectionRequest) Add(ctx context.Context, reqObj *MultiValueLegacyExtendedProperty) (resObj *MultiValueLegacyExtendedProperty, err error) {
   216  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   217  	return
   218  }
   219  
   220  // Photo is navigation property
   221  func (b *ContactRequestBuilder) Photo() *ProfilePhotoRequestBuilder {
   222  	bb := &ProfilePhotoRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   223  	bb.baseURL += "/photo"
   224  	return bb
   225  }
   226  
   227  // SingleValueExtendedProperties returns request builder for SingleValueLegacyExtendedProperty collection
   228  func (b *ContactRequestBuilder) SingleValueExtendedProperties() *ContactSingleValueExtendedPropertiesCollectionRequestBuilder {
   229  	bb := &ContactSingleValueExtendedPropertiesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   230  	bb.baseURL += "/singleValueExtendedProperties"
   231  	return bb
   232  }
   233  
   234  // ContactSingleValueExtendedPropertiesCollectionRequestBuilder is request builder for SingleValueLegacyExtendedProperty collection
   235  type ContactSingleValueExtendedPropertiesCollectionRequestBuilder struct{ BaseRequestBuilder }
   236  
   237  // Request returns request for SingleValueLegacyExtendedProperty collection
   238  func (b *ContactSingleValueExtendedPropertiesCollectionRequestBuilder) Request() *ContactSingleValueExtendedPropertiesCollectionRequest {
   239  	return &ContactSingleValueExtendedPropertiesCollectionRequest{
   240  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   241  	}
   242  }
   243  
   244  // ID returns request builder for SingleValueLegacyExtendedProperty item
   245  func (b *ContactSingleValueExtendedPropertiesCollectionRequestBuilder) ID(id string) *SingleValueLegacyExtendedPropertyRequestBuilder {
   246  	bb := &SingleValueLegacyExtendedPropertyRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   247  	bb.baseURL += "/" + id
   248  	return bb
   249  }
   250  
   251  // ContactSingleValueExtendedPropertiesCollectionRequest is request for SingleValueLegacyExtendedProperty collection
   252  type ContactSingleValueExtendedPropertiesCollectionRequest struct{ BaseRequest }
   253  
   254  // Paging perfoms paging operation for SingleValueLegacyExtendedProperty collection
   255  func (r *ContactSingleValueExtendedPropertiesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]SingleValueLegacyExtendedProperty, 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 []SingleValueLegacyExtendedProperty
   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  []SingleValueLegacyExtendedProperty
   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 SingleValueLegacyExtendedProperty collection, max N pages
   311  func (r *ContactSingleValueExtendedPropertiesCollectionRequest) GetN(ctx context.Context, n int) ([]SingleValueLegacyExtendedProperty, 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 SingleValueLegacyExtendedProperty collection
   320  func (r *ContactSingleValueExtendedPropertiesCollectionRequest) Get(ctx context.Context) ([]SingleValueLegacyExtendedProperty, error) {
   321  	return r.GetN(ctx, 0)
   322  }
   323  
   324  // Add performs POST request for SingleValueLegacyExtendedProperty collection
   325  func (r *ContactSingleValueExtendedPropertiesCollectionRequest) Add(ctx context.Context, reqObj *SingleValueLegacyExtendedProperty) (resObj *SingleValueLegacyExtendedProperty, err error) {
   326  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   327  	return
   328  }
   329  
   330  // ChildFolders returns request builder for ContactFolder collection
   331  func (b *ContactFolderRequestBuilder) ChildFolders() *ContactFolderChildFoldersCollectionRequestBuilder {
   332  	bb := &ContactFolderChildFoldersCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   333  	bb.baseURL += "/childFolders"
   334  	return bb
   335  }
   336  
   337  // ContactFolderChildFoldersCollectionRequestBuilder is request builder for ContactFolder collection
   338  type ContactFolderChildFoldersCollectionRequestBuilder struct{ BaseRequestBuilder }
   339  
   340  // Request returns request for ContactFolder collection
   341  func (b *ContactFolderChildFoldersCollectionRequestBuilder) Request() *ContactFolderChildFoldersCollectionRequest {
   342  	return &ContactFolderChildFoldersCollectionRequest{
   343  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   344  	}
   345  }
   346  
   347  // ID returns request builder for ContactFolder item
   348  func (b *ContactFolderChildFoldersCollectionRequestBuilder) ID(id string) *ContactFolderRequestBuilder {
   349  	bb := &ContactFolderRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   350  	bb.baseURL += "/" + id
   351  	return bb
   352  }
   353  
   354  // ContactFolderChildFoldersCollectionRequest is request for ContactFolder collection
   355  type ContactFolderChildFoldersCollectionRequest struct{ BaseRequest }
   356  
   357  // Paging perfoms paging operation for ContactFolder collection
   358  func (r *ContactFolderChildFoldersCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]ContactFolder, 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 []ContactFolder
   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  []ContactFolder
   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 ContactFolder collection, max N pages
   414  func (r *ContactFolderChildFoldersCollectionRequest) GetN(ctx context.Context, n int) ([]ContactFolder, 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 ContactFolder collection
   423  func (r *ContactFolderChildFoldersCollectionRequest) Get(ctx context.Context) ([]ContactFolder, error) {
   424  	return r.GetN(ctx, 0)
   425  }
   426  
   427  // Add performs POST request for ContactFolder collection
   428  func (r *ContactFolderChildFoldersCollectionRequest) Add(ctx context.Context, reqObj *ContactFolder) (resObj *ContactFolder, err error) {
   429  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   430  	return
   431  }
   432  
   433  // Contacts returns request builder for Contact collection
   434  func (b *ContactFolderRequestBuilder) Contacts() *ContactFolderContactsCollectionRequestBuilder {
   435  	bb := &ContactFolderContactsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   436  	bb.baseURL += "/contacts"
   437  	return bb
   438  }
   439  
   440  // ContactFolderContactsCollectionRequestBuilder is request builder for Contact collection
   441  type ContactFolderContactsCollectionRequestBuilder struct{ BaseRequestBuilder }
   442  
   443  // Request returns request for Contact collection
   444  func (b *ContactFolderContactsCollectionRequestBuilder) Request() *ContactFolderContactsCollectionRequest {
   445  	return &ContactFolderContactsCollectionRequest{
   446  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   447  	}
   448  }
   449  
   450  // ID returns request builder for Contact item
   451  func (b *ContactFolderContactsCollectionRequestBuilder) ID(id string) *ContactRequestBuilder {
   452  	bb := &ContactRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   453  	bb.baseURL += "/" + id
   454  	return bb
   455  }
   456  
   457  // ContactFolderContactsCollectionRequest is request for Contact collection
   458  type ContactFolderContactsCollectionRequest struct{ BaseRequest }
   459  
   460  // Paging perfoms paging operation for Contact collection
   461  func (r *ContactFolderContactsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Contact, error) {
   462  	req, err := r.NewJSONRequest(method, path, obj)
   463  	if err != nil {
   464  		return nil, err
   465  	}
   466  	if ctx != nil {
   467  		req = req.WithContext(ctx)
   468  	}
   469  	res, err := r.client.Do(req)
   470  	if err != nil {
   471  		return nil, err
   472  	}
   473  	var values []Contact
   474  	for {
   475  		if res.StatusCode != http.StatusOK {
   476  			b, _ := ioutil.ReadAll(res.Body)
   477  			res.Body.Close()
   478  			errRes := &ErrorResponse{Response: res}
   479  			err := jsonx.Unmarshal(b, errRes)
   480  			if err != nil {
   481  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   482  			}
   483  			return nil, errRes
   484  		}
   485  		var (
   486  			paging Paging
   487  			value  []Contact
   488  		)
   489  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   490  		res.Body.Close()
   491  		if err != nil {
   492  			return nil, err
   493  		}
   494  		err = jsonx.Unmarshal(paging.Value, &value)
   495  		if err != nil {
   496  			return nil, err
   497  		}
   498  		values = append(values, value...)
   499  		if n >= 0 {
   500  			n--
   501  		}
   502  		if n == 0 || len(paging.NextLink) == 0 {
   503  			return values, nil
   504  		}
   505  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   506  		if ctx != nil {
   507  			req = req.WithContext(ctx)
   508  		}
   509  		res, err = r.client.Do(req)
   510  		if err != nil {
   511  			return nil, err
   512  		}
   513  	}
   514  }
   515  
   516  // GetN performs GET request for Contact collection, max N pages
   517  func (r *ContactFolderContactsCollectionRequest) GetN(ctx context.Context, n int) ([]Contact, error) {
   518  	var query string
   519  	if r.query != nil {
   520  		query = "?" + r.query.Encode()
   521  	}
   522  	return r.Paging(ctx, "GET", query, nil, n)
   523  }
   524  
   525  // Get performs GET request for Contact collection
   526  func (r *ContactFolderContactsCollectionRequest) Get(ctx context.Context) ([]Contact, error) {
   527  	return r.GetN(ctx, 0)
   528  }
   529  
   530  // Add performs POST request for Contact collection
   531  func (r *ContactFolderContactsCollectionRequest) Add(ctx context.Context, reqObj *Contact) (resObj *Contact, err error) {
   532  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   533  	return
   534  }
   535  
   536  // MultiValueExtendedProperties returns request builder for MultiValueLegacyExtendedProperty collection
   537  func (b *ContactFolderRequestBuilder) MultiValueExtendedProperties() *ContactFolderMultiValueExtendedPropertiesCollectionRequestBuilder {
   538  	bb := &ContactFolderMultiValueExtendedPropertiesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   539  	bb.baseURL += "/multiValueExtendedProperties"
   540  	return bb
   541  }
   542  
   543  // ContactFolderMultiValueExtendedPropertiesCollectionRequestBuilder is request builder for MultiValueLegacyExtendedProperty collection
   544  type ContactFolderMultiValueExtendedPropertiesCollectionRequestBuilder struct{ BaseRequestBuilder }
   545  
   546  // Request returns request for MultiValueLegacyExtendedProperty collection
   547  func (b *ContactFolderMultiValueExtendedPropertiesCollectionRequestBuilder) Request() *ContactFolderMultiValueExtendedPropertiesCollectionRequest {
   548  	return &ContactFolderMultiValueExtendedPropertiesCollectionRequest{
   549  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   550  	}
   551  }
   552  
   553  // ID returns request builder for MultiValueLegacyExtendedProperty item
   554  func (b *ContactFolderMultiValueExtendedPropertiesCollectionRequestBuilder) ID(id string) *MultiValueLegacyExtendedPropertyRequestBuilder {
   555  	bb := &MultiValueLegacyExtendedPropertyRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   556  	bb.baseURL += "/" + id
   557  	return bb
   558  }
   559  
   560  // ContactFolderMultiValueExtendedPropertiesCollectionRequest is request for MultiValueLegacyExtendedProperty collection
   561  type ContactFolderMultiValueExtendedPropertiesCollectionRequest struct{ BaseRequest }
   562  
   563  // Paging perfoms paging operation for MultiValueLegacyExtendedProperty collection
   564  func (r *ContactFolderMultiValueExtendedPropertiesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]MultiValueLegacyExtendedProperty, error) {
   565  	req, err := r.NewJSONRequest(method, path, obj)
   566  	if err != nil {
   567  		return nil, err
   568  	}
   569  	if ctx != nil {
   570  		req = req.WithContext(ctx)
   571  	}
   572  	res, err := r.client.Do(req)
   573  	if err != nil {
   574  		return nil, err
   575  	}
   576  	var values []MultiValueLegacyExtendedProperty
   577  	for {
   578  		if res.StatusCode != http.StatusOK {
   579  			b, _ := ioutil.ReadAll(res.Body)
   580  			res.Body.Close()
   581  			errRes := &ErrorResponse{Response: res}
   582  			err := jsonx.Unmarshal(b, errRes)
   583  			if err != nil {
   584  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   585  			}
   586  			return nil, errRes
   587  		}
   588  		var (
   589  			paging Paging
   590  			value  []MultiValueLegacyExtendedProperty
   591  		)
   592  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   593  		res.Body.Close()
   594  		if err != nil {
   595  			return nil, err
   596  		}
   597  		err = jsonx.Unmarshal(paging.Value, &value)
   598  		if err != nil {
   599  			return nil, err
   600  		}
   601  		values = append(values, value...)
   602  		if n >= 0 {
   603  			n--
   604  		}
   605  		if n == 0 || len(paging.NextLink) == 0 {
   606  			return values, nil
   607  		}
   608  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   609  		if ctx != nil {
   610  			req = req.WithContext(ctx)
   611  		}
   612  		res, err = r.client.Do(req)
   613  		if err != nil {
   614  			return nil, err
   615  		}
   616  	}
   617  }
   618  
   619  // GetN performs GET request for MultiValueLegacyExtendedProperty collection, max N pages
   620  func (r *ContactFolderMultiValueExtendedPropertiesCollectionRequest) GetN(ctx context.Context, n int) ([]MultiValueLegacyExtendedProperty, error) {
   621  	var query string
   622  	if r.query != nil {
   623  		query = "?" + r.query.Encode()
   624  	}
   625  	return r.Paging(ctx, "GET", query, nil, n)
   626  }
   627  
   628  // Get performs GET request for MultiValueLegacyExtendedProperty collection
   629  func (r *ContactFolderMultiValueExtendedPropertiesCollectionRequest) Get(ctx context.Context) ([]MultiValueLegacyExtendedProperty, error) {
   630  	return r.GetN(ctx, 0)
   631  }
   632  
   633  // Add performs POST request for MultiValueLegacyExtendedProperty collection
   634  func (r *ContactFolderMultiValueExtendedPropertiesCollectionRequest) Add(ctx context.Context, reqObj *MultiValueLegacyExtendedProperty) (resObj *MultiValueLegacyExtendedProperty, err error) {
   635  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   636  	return
   637  }
   638  
   639  // SingleValueExtendedProperties returns request builder for SingleValueLegacyExtendedProperty collection
   640  func (b *ContactFolderRequestBuilder) SingleValueExtendedProperties() *ContactFolderSingleValueExtendedPropertiesCollectionRequestBuilder {
   641  	bb := &ContactFolderSingleValueExtendedPropertiesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   642  	bb.baseURL += "/singleValueExtendedProperties"
   643  	return bb
   644  }
   645  
   646  // ContactFolderSingleValueExtendedPropertiesCollectionRequestBuilder is request builder for SingleValueLegacyExtendedProperty collection
   647  type ContactFolderSingleValueExtendedPropertiesCollectionRequestBuilder struct{ BaseRequestBuilder }
   648  
   649  // Request returns request for SingleValueLegacyExtendedProperty collection
   650  func (b *ContactFolderSingleValueExtendedPropertiesCollectionRequestBuilder) Request() *ContactFolderSingleValueExtendedPropertiesCollectionRequest {
   651  	return &ContactFolderSingleValueExtendedPropertiesCollectionRequest{
   652  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   653  	}
   654  }
   655  
   656  // ID returns request builder for SingleValueLegacyExtendedProperty item
   657  func (b *ContactFolderSingleValueExtendedPropertiesCollectionRequestBuilder) ID(id string) *SingleValueLegacyExtendedPropertyRequestBuilder {
   658  	bb := &SingleValueLegacyExtendedPropertyRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   659  	bb.baseURL += "/" + id
   660  	return bb
   661  }
   662  
   663  // ContactFolderSingleValueExtendedPropertiesCollectionRequest is request for SingleValueLegacyExtendedProperty collection
   664  type ContactFolderSingleValueExtendedPropertiesCollectionRequest struct{ BaseRequest }
   665  
   666  // Paging perfoms paging operation for SingleValueLegacyExtendedProperty collection
   667  func (r *ContactFolderSingleValueExtendedPropertiesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]SingleValueLegacyExtendedProperty, 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 []SingleValueLegacyExtendedProperty
   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  []SingleValueLegacyExtendedProperty
   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 SingleValueLegacyExtendedProperty collection, max N pages
   723  func (r *ContactFolderSingleValueExtendedPropertiesCollectionRequest) GetN(ctx context.Context, n int) ([]SingleValueLegacyExtendedProperty, 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 SingleValueLegacyExtendedProperty collection
   732  func (r *ContactFolderSingleValueExtendedPropertiesCollectionRequest) Get(ctx context.Context) ([]SingleValueLegacyExtendedProperty, error) {
   733  	return r.GetN(ctx, 0)
   734  }
   735  
   736  // Add performs POST request for SingleValueLegacyExtendedProperty collection
   737  func (r *ContactFolderSingleValueExtendedPropertiesCollectionRequest) Add(ctx context.Context, reqObj *SingleValueLegacyExtendedProperty) (resObj *SingleValueLegacyExtendedProperty, err error) {
   738  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   739  	return
   740  }