github.com/yaegashi/msgraph.go@v0.1.4/v1.0/ActionPost.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  // PostReplyRequestParameter undocumented
    15  type PostReplyRequestParameter struct {
    16  	// Post undocumented
    17  	Post *Post `json:"Post,omitempty"`
    18  }
    19  
    20  // PostForwardRequestParameter undocumented
    21  type PostForwardRequestParameter struct {
    22  	// Comment undocumented
    23  	Comment *string `json:"Comment,omitempty"`
    24  	// ToRecipients undocumented
    25  	ToRecipients []Recipient `json:"ToRecipients,omitempty"`
    26  }
    27  
    28  // Attachments returns request builder for Attachment collection
    29  func (b *PostRequestBuilder) Attachments() *PostAttachmentsCollectionRequestBuilder {
    30  	bb := &PostAttachmentsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
    31  	bb.baseURL += "/attachments"
    32  	return bb
    33  }
    34  
    35  // PostAttachmentsCollectionRequestBuilder is request builder for Attachment collection
    36  type PostAttachmentsCollectionRequestBuilder struct{ BaseRequestBuilder }
    37  
    38  // Request returns request for Attachment collection
    39  func (b *PostAttachmentsCollectionRequestBuilder) Request() *PostAttachmentsCollectionRequest {
    40  	return &PostAttachmentsCollectionRequest{
    41  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
    42  	}
    43  }
    44  
    45  // ID returns request builder for Attachment item
    46  func (b *PostAttachmentsCollectionRequestBuilder) ID(id string) *AttachmentRequestBuilder {
    47  	bb := &AttachmentRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
    48  	bb.baseURL += "/" + id
    49  	return bb
    50  }
    51  
    52  // PostAttachmentsCollectionRequest is request for Attachment collection
    53  type PostAttachmentsCollectionRequest struct{ BaseRequest }
    54  
    55  // Paging perfoms paging operation for Attachment collection
    56  func (r *PostAttachmentsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Attachment, error) {
    57  	req, err := r.NewJSONRequest(method, path, obj)
    58  	if err != nil {
    59  		return nil, err
    60  	}
    61  	if ctx != nil {
    62  		req = req.WithContext(ctx)
    63  	}
    64  	res, err := r.client.Do(req)
    65  	if err != nil {
    66  		return nil, err
    67  	}
    68  	var values []Attachment
    69  	for {
    70  		if res.StatusCode != http.StatusOK {
    71  			b, _ := ioutil.ReadAll(res.Body)
    72  			res.Body.Close()
    73  			errRes := &ErrorResponse{Response: res}
    74  			err := jsonx.Unmarshal(b, errRes)
    75  			if err != nil {
    76  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
    77  			}
    78  			return nil, errRes
    79  		}
    80  		var (
    81  			paging Paging
    82  			value  []Attachment
    83  		)
    84  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
    85  		res.Body.Close()
    86  		if err != nil {
    87  			return nil, err
    88  		}
    89  		err = jsonx.Unmarshal(paging.Value, &value)
    90  		if err != nil {
    91  			return nil, err
    92  		}
    93  		values = append(values, value...)
    94  		if n >= 0 {
    95  			n--
    96  		}
    97  		if n == 0 || len(paging.NextLink) == 0 {
    98  			return values, nil
    99  		}
   100  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   101  		if ctx != nil {
   102  			req = req.WithContext(ctx)
   103  		}
   104  		res, err = r.client.Do(req)
   105  		if err != nil {
   106  			return nil, err
   107  		}
   108  	}
   109  }
   110  
   111  // GetN performs GET request for Attachment collection, max N pages
   112  func (r *PostAttachmentsCollectionRequest) GetN(ctx context.Context, n int) ([]Attachment, error) {
   113  	var query string
   114  	if r.query != nil {
   115  		query = "?" + r.query.Encode()
   116  	}
   117  	return r.Paging(ctx, "GET", query, nil, n)
   118  }
   119  
   120  // Get performs GET request for Attachment collection
   121  func (r *PostAttachmentsCollectionRequest) Get(ctx context.Context) ([]Attachment, error) {
   122  	return r.GetN(ctx, 0)
   123  }
   124  
   125  // Add performs POST request for Attachment collection
   126  func (r *PostAttachmentsCollectionRequest) Add(ctx context.Context, reqObj *Attachment) (resObj *Attachment, err error) {
   127  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   128  	return
   129  }
   130  
   131  // Extensions returns request builder for Extension collection
   132  func (b *PostRequestBuilder) Extensions() *PostExtensionsCollectionRequestBuilder {
   133  	bb := &PostExtensionsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   134  	bb.baseURL += "/extensions"
   135  	return bb
   136  }
   137  
   138  // PostExtensionsCollectionRequestBuilder is request builder for Extension collection
   139  type PostExtensionsCollectionRequestBuilder struct{ BaseRequestBuilder }
   140  
   141  // Request returns request for Extension collection
   142  func (b *PostExtensionsCollectionRequestBuilder) Request() *PostExtensionsCollectionRequest {
   143  	return &PostExtensionsCollectionRequest{
   144  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   145  	}
   146  }
   147  
   148  // ID returns request builder for Extension item
   149  func (b *PostExtensionsCollectionRequestBuilder) ID(id string) *ExtensionRequestBuilder {
   150  	bb := &ExtensionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   151  	bb.baseURL += "/" + id
   152  	return bb
   153  }
   154  
   155  // PostExtensionsCollectionRequest is request for Extension collection
   156  type PostExtensionsCollectionRequest struct{ BaseRequest }
   157  
   158  // Paging perfoms paging operation for Extension collection
   159  func (r *PostExtensionsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Extension, error) {
   160  	req, err := r.NewJSONRequest(method, path, obj)
   161  	if err != nil {
   162  		return nil, err
   163  	}
   164  	if ctx != nil {
   165  		req = req.WithContext(ctx)
   166  	}
   167  	res, err := r.client.Do(req)
   168  	if err != nil {
   169  		return nil, err
   170  	}
   171  	var values []Extension
   172  	for {
   173  		if res.StatusCode != http.StatusOK {
   174  			b, _ := ioutil.ReadAll(res.Body)
   175  			res.Body.Close()
   176  			errRes := &ErrorResponse{Response: res}
   177  			err := jsonx.Unmarshal(b, errRes)
   178  			if err != nil {
   179  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   180  			}
   181  			return nil, errRes
   182  		}
   183  		var (
   184  			paging Paging
   185  			value  []Extension
   186  		)
   187  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   188  		res.Body.Close()
   189  		if err != nil {
   190  			return nil, err
   191  		}
   192  		err = jsonx.Unmarshal(paging.Value, &value)
   193  		if err != nil {
   194  			return nil, err
   195  		}
   196  		values = append(values, value...)
   197  		if n >= 0 {
   198  			n--
   199  		}
   200  		if n == 0 || len(paging.NextLink) == 0 {
   201  			return values, nil
   202  		}
   203  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   204  		if ctx != nil {
   205  			req = req.WithContext(ctx)
   206  		}
   207  		res, err = r.client.Do(req)
   208  		if err != nil {
   209  			return nil, err
   210  		}
   211  	}
   212  }
   213  
   214  // GetN performs GET request for Extension collection, max N pages
   215  func (r *PostExtensionsCollectionRequest) GetN(ctx context.Context, n int) ([]Extension, error) {
   216  	var query string
   217  	if r.query != nil {
   218  		query = "?" + r.query.Encode()
   219  	}
   220  	return r.Paging(ctx, "GET", query, nil, n)
   221  }
   222  
   223  // Get performs GET request for Extension collection
   224  func (r *PostExtensionsCollectionRequest) Get(ctx context.Context) ([]Extension, error) {
   225  	return r.GetN(ctx, 0)
   226  }
   227  
   228  // Add performs POST request for Extension collection
   229  func (r *PostExtensionsCollectionRequest) Add(ctx context.Context, reqObj *Extension) (resObj *Extension, err error) {
   230  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   231  	return
   232  }
   233  
   234  // InReplyTo is navigation property
   235  func (b *PostRequestBuilder) InReplyTo() *PostRequestBuilder {
   236  	bb := &PostRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   237  	bb.baseURL += "/inReplyTo"
   238  	return bb
   239  }
   240  
   241  // MultiValueExtendedProperties returns request builder for MultiValueLegacyExtendedProperty collection
   242  func (b *PostRequestBuilder) MultiValueExtendedProperties() *PostMultiValueExtendedPropertiesCollectionRequestBuilder {
   243  	bb := &PostMultiValueExtendedPropertiesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   244  	bb.baseURL += "/multiValueExtendedProperties"
   245  	return bb
   246  }
   247  
   248  // PostMultiValueExtendedPropertiesCollectionRequestBuilder is request builder for MultiValueLegacyExtendedProperty collection
   249  type PostMultiValueExtendedPropertiesCollectionRequestBuilder struct{ BaseRequestBuilder }
   250  
   251  // Request returns request for MultiValueLegacyExtendedProperty collection
   252  func (b *PostMultiValueExtendedPropertiesCollectionRequestBuilder) Request() *PostMultiValueExtendedPropertiesCollectionRequest {
   253  	return &PostMultiValueExtendedPropertiesCollectionRequest{
   254  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   255  	}
   256  }
   257  
   258  // ID returns request builder for MultiValueLegacyExtendedProperty item
   259  func (b *PostMultiValueExtendedPropertiesCollectionRequestBuilder) ID(id string) *MultiValueLegacyExtendedPropertyRequestBuilder {
   260  	bb := &MultiValueLegacyExtendedPropertyRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   261  	bb.baseURL += "/" + id
   262  	return bb
   263  }
   264  
   265  // PostMultiValueExtendedPropertiesCollectionRequest is request for MultiValueLegacyExtendedProperty collection
   266  type PostMultiValueExtendedPropertiesCollectionRequest struct{ BaseRequest }
   267  
   268  // Paging perfoms paging operation for MultiValueLegacyExtendedProperty collection
   269  func (r *PostMultiValueExtendedPropertiesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]MultiValueLegacyExtendedProperty, error) {
   270  	req, err := r.NewJSONRequest(method, path, obj)
   271  	if err != nil {
   272  		return nil, err
   273  	}
   274  	if ctx != nil {
   275  		req = req.WithContext(ctx)
   276  	}
   277  	res, err := r.client.Do(req)
   278  	if err != nil {
   279  		return nil, err
   280  	}
   281  	var values []MultiValueLegacyExtendedProperty
   282  	for {
   283  		if res.StatusCode != http.StatusOK {
   284  			b, _ := ioutil.ReadAll(res.Body)
   285  			res.Body.Close()
   286  			errRes := &ErrorResponse{Response: res}
   287  			err := jsonx.Unmarshal(b, errRes)
   288  			if err != nil {
   289  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   290  			}
   291  			return nil, errRes
   292  		}
   293  		var (
   294  			paging Paging
   295  			value  []MultiValueLegacyExtendedProperty
   296  		)
   297  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   298  		res.Body.Close()
   299  		if err != nil {
   300  			return nil, err
   301  		}
   302  		err = jsonx.Unmarshal(paging.Value, &value)
   303  		if err != nil {
   304  			return nil, err
   305  		}
   306  		values = append(values, value...)
   307  		if n >= 0 {
   308  			n--
   309  		}
   310  		if n == 0 || len(paging.NextLink) == 0 {
   311  			return values, nil
   312  		}
   313  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   314  		if ctx != nil {
   315  			req = req.WithContext(ctx)
   316  		}
   317  		res, err = r.client.Do(req)
   318  		if err != nil {
   319  			return nil, err
   320  		}
   321  	}
   322  }
   323  
   324  // GetN performs GET request for MultiValueLegacyExtendedProperty collection, max N pages
   325  func (r *PostMultiValueExtendedPropertiesCollectionRequest) GetN(ctx context.Context, n int) ([]MultiValueLegacyExtendedProperty, error) {
   326  	var query string
   327  	if r.query != nil {
   328  		query = "?" + r.query.Encode()
   329  	}
   330  	return r.Paging(ctx, "GET", query, nil, n)
   331  }
   332  
   333  // Get performs GET request for MultiValueLegacyExtendedProperty collection
   334  func (r *PostMultiValueExtendedPropertiesCollectionRequest) Get(ctx context.Context) ([]MultiValueLegacyExtendedProperty, error) {
   335  	return r.GetN(ctx, 0)
   336  }
   337  
   338  // Add performs POST request for MultiValueLegacyExtendedProperty collection
   339  func (r *PostMultiValueExtendedPropertiesCollectionRequest) Add(ctx context.Context, reqObj *MultiValueLegacyExtendedProperty) (resObj *MultiValueLegacyExtendedProperty, err error) {
   340  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   341  	return
   342  }
   343  
   344  // SingleValueExtendedProperties returns request builder for SingleValueLegacyExtendedProperty collection
   345  func (b *PostRequestBuilder) SingleValueExtendedProperties() *PostSingleValueExtendedPropertiesCollectionRequestBuilder {
   346  	bb := &PostSingleValueExtendedPropertiesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   347  	bb.baseURL += "/singleValueExtendedProperties"
   348  	return bb
   349  }
   350  
   351  // PostSingleValueExtendedPropertiesCollectionRequestBuilder is request builder for SingleValueLegacyExtendedProperty collection
   352  type PostSingleValueExtendedPropertiesCollectionRequestBuilder struct{ BaseRequestBuilder }
   353  
   354  // Request returns request for SingleValueLegacyExtendedProperty collection
   355  func (b *PostSingleValueExtendedPropertiesCollectionRequestBuilder) Request() *PostSingleValueExtendedPropertiesCollectionRequest {
   356  	return &PostSingleValueExtendedPropertiesCollectionRequest{
   357  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   358  	}
   359  }
   360  
   361  // ID returns request builder for SingleValueLegacyExtendedProperty item
   362  func (b *PostSingleValueExtendedPropertiesCollectionRequestBuilder) ID(id string) *SingleValueLegacyExtendedPropertyRequestBuilder {
   363  	bb := &SingleValueLegacyExtendedPropertyRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   364  	bb.baseURL += "/" + id
   365  	return bb
   366  }
   367  
   368  // PostSingleValueExtendedPropertiesCollectionRequest is request for SingleValueLegacyExtendedProperty collection
   369  type PostSingleValueExtendedPropertiesCollectionRequest struct{ BaseRequest }
   370  
   371  // Paging perfoms paging operation for SingleValueLegacyExtendedProperty collection
   372  func (r *PostSingleValueExtendedPropertiesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]SingleValueLegacyExtendedProperty, error) {
   373  	req, err := r.NewJSONRequest(method, path, obj)
   374  	if err != nil {
   375  		return nil, err
   376  	}
   377  	if ctx != nil {
   378  		req = req.WithContext(ctx)
   379  	}
   380  	res, err := r.client.Do(req)
   381  	if err != nil {
   382  		return nil, err
   383  	}
   384  	var values []SingleValueLegacyExtendedProperty
   385  	for {
   386  		if res.StatusCode != http.StatusOK {
   387  			b, _ := ioutil.ReadAll(res.Body)
   388  			res.Body.Close()
   389  			errRes := &ErrorResponse{Response: res}
   390  			err := jsonx.Unmarshal(b, errRes)
   391  			if err != nil {
   392  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   393  			}
   394  			return nil, errRes
   395  		}
   396  		var (
   397  			paging Paging
   398  			value  []SingleValueLegacyExtendedProperty
   399  		)
   400  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   401  		res.Body.Close()
   402  		if err != nil {
   403  			return nil, err
   404  		}
   405  		err = jsonx.Unmarshal(paging.Value, &value)
   406  		if err != nil {
   407  			return nil, err
   408  		}
   409  		values = append(values, value...)
   410  		if n >= 0 {
   411  			n--
   412  		}
   413  		if n == 0 || len(paging.NextLink) == 0 {
   414  			return values, nil
   415  		}
   416  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   417  		if ctx != nil {
   418  			req = req.WithContext(ctx)
   419  		}
   420  		res, err = r.client.Do(req)
   421  		if err != nil {
   422  			return nil, err
   423  		}
   424  	}
   425  }
   426  
   427  // GetN performs GET request for SingleValueLegacyExtendedProperty collection, max N pages
   428  func (r *PostSingleValueExtendedPropertiesCollectionRequest) GetN(ctx context.Context, n int) ([]SingleValueLegacyExtendedProperty, error) {
   429  	var query string
   430  	if r.query != nil {
   431  		query = "?" + r.query.Encode()
   432  	}
   433  	return r.Paging(ctx, "GET", query, nil, n)
   434  }
   435  
   436  // Get performs GET request for SingleValueLegacyExtendedProperty collection
   437  func (r *PostSingleValueExtendedPropertiesCollectionRequest) Get(ctx context.Context) ([]SingleValueLegacyExtendedProperty, error) {
   438  	return r.GetN(ctx, 0)
   439  }
   440  
   441  // Add performs POST request for SingleValueLegacyExtendedProperty collection
   442  func (r *PostSingleValueExtendedPropertiesCollectionRequest) Add(ctx context.Context, reqObj *SingleValueLegacyExtendedProperty) (resObj *SingleValueLegacyExtendedProperty, err error) {
   443  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   444  	return
   445  }