github.com/yaegashi/msgraph.go@v0.1.4/beta/ActionOrg.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  // DirectReports returns request builder for DirectoryObject collection
    15  func (b *OrgContactRequestBuilder) DirectReports() *OrgContactDirectReportsCollectionRequestBuilder {
    16  	bb := &OrgContactDirectReportsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
    17  	bb.baseURL += "/directReports"
    18  	return bb
    19  }
    20  
    21  // OrgContactDirectReportsCollectionRequestBuilder is request builder for DirectoryObject collection
    22  type OrgContactDirectReportsCollectionRequestBuilder struct{ BaseRequestBuilder }
    23  
    24  // Request returns request for DirectoryObject collection
    25  func (b *OrgContactDirectReportsCollectionRequestBuilder) Request() *OrgContactDirectReportsCollectionRequest {
    26  	return &OrgContactDirectReportsCollectionRequest{
    27  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
    28  	}
    29  }
    30  
    31  // ID returns request builder for DirectoryObject item
    32  func (b *OrgContactDirectReportsCollectionRequestBuilder) ID(id string) *DirectoryObjectRequestBuilder {
    33  	bb := &DirectoryObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
    34  	bb.baseURL += "/" + id
    35  	return bb
    36  }
    37  
    38  // OrgContactDirectReportsCollectionRequest is request for DirectoryObject collection
    39  type OrgContactDirectReportsCollectionRequest struct{ BaseRequest }
    40  
    41  // Paging perfoms paging operation for DirectoryObject collection
    42  func (r *OrgContactDirectReportsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DirectoryObject, 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 []DirectoryObject
    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  []DirectoryObject
    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 DirectoryObject collection, max N pages
    98  func (r *OrgContactDirectReportsCollectionRequest) GetN(ctx context.Context, n int) ([]DirectoryObject, 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 DirectoryObject collection
   107  func (r *OrgContactDirectReportsCollectionRequest) Get(ctx context.Context) ([]DirectoryObject, error) {
   108  	return r.GetN(ctx, 0)
   109  }
   110  
   111  // Add performs POST request for DirectoryObject collection
   112  func (r *OrgContactDirectReportsCollectionRequest) Add(ctx context.Context, reqObj *DirectoryObject) (resObj *DirectoryObject, err error) {
   113  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   114  	return
   115  }
   116  
   117  // Manager is navigation property
   118  func (b *OrgContactRequestBuilder) Manager() *DirectoryObjectRequestBuilder {
   119  	bb := &DirectoryObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   120  	bb.baseURL += "/manager"
   121  	return bb
   122  }
   123  
   124  // MemberOf returns request builder for DirectoryObject collection
   125  func (b *OrgContactRequestBuilder) MemberOf() *OrgContactMemberOfCollectionRequestBuilder {
   126  	bb := &OrgContactMemberOfCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   127  	bb.baseURL += "/memberOf"
   128  	return bb
   129  }
   130  
   131  // OrgContactMemberOfCollectionRequestBuilder is request builder for DirectoryObject collection
   132  type OrgContactMemberOfCollectionRequestBuilder struct{ BaseRequestBuilder }
   133  
   134  // Request returns request for DirectoryObject collection
   135  func (b *OrgContactMemberOfCollectionRequestBuilder) Request() *OrgContactMemberOfCollectionRequest {
   136  	return &OrgContactMemberOfCollectionRequest{
   137  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   138  	}
   139  }
   140  
   141  // ID returns request builder for DirectoryObject item
   142  func (b *OrgContactMemberOfCollectionRequestBuilder) ID(id string) *DirectoryObjectRequestBuilder {
   143  	bb := &DirectoryObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   144  	bb.baseURL += "/" + id
   145  	return bb
   146  }
   147  
   148  // OrgContactMemberOfCollectionRequest is request for DirectoryObject collection
   149  type OrgContactMemberOfCollectionRequest struct{ BaseRequest }
   150  
   151  // Paging perfoms paging operation for DirectoryObject collection
   152  func (r *OrgContactMemberOfCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DirectoryObject, 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 []DirectoryObject
   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  []DirectoryObject
   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 DirectoryObject collection, max N pages
   208  func (r *OrgContactMemberOfCollectionRequest) GetN(ctx context.Context, n int) ([]DirectoryObject, 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 DirectoryObject collection
   217  func (r *OrgContactMemberOfCollectionRequest) Get(ctx context.Context) ([]DirectoryObject, error) {
   218  	return r.GetN(ctx, 0)
   219  }
   220  
   221  // Add performs POST request for DirectoryObject collection
   222  func (r *OrgContactMemberOfCollectionRequest) Add(ctx context.Context, reqObj *DirectoryObject) (resObj *DirectoryObject, err error) {
   223  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   224  	return
   225  }
   226  
   227  // TransitiveMemberOf returns request builder for DirectoryObject collection
   228  func (b *OrgContactRequestBuilder) TransitiveMemberOf() *OrgContactTransitiveMemberOfCollectionRequestBuilder {
   229  	bb := &OrgContactTransitiveMemberOfCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   230  	bb.baseURL += "/transitiveMemberOf"
   231  	return bb
   232  }
   233  
   234  // OrgContactTransitiveMemberOfCollectionRequestBuilder is request builder for DirectoryObject collection
   235  type OrgContactTransitiveMemberOfCollectionRequestBuilder struct{ BaseRequestBuilder }
   236  
   237  // Request returns request for DirectoryObject collection
   238  func (b *OrgContactTransitiveMemberOfCollectionRequestBuilder) Request() *OrgContactTransitiveMemberOfCollectionRequest {
   239  	return &OrgContactTransitiveMemberOfCollectionRequest{
   240  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   241  	}
   242  }
   243  
   244  // ID returns request builder for DirectoryObject item
   245  func (b *OrgContactTransitiveMemberOfCollectionRequestBuilder) ID(id string) *DirectoryObjectRequestBuilder {
   246  	bb := &DirectoryObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   247  	bb.baseURL += "/" + id
   248  	return bb
   249  }
   250  
   251  // OrgContactTransitiveMemberOfCollectionRequest is request for DirectoryObject collection
   252  type OrgContactTransitiveMemberOfCollectionRequest struct{ BaseRequest }
   253  
   254  // Paging perfoms paging operation for DirectoryObject collection
   255  func (r *OrgContactTransitiveMemberOfCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DirectoryObject, 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 []DirectoryObject
   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  []DirectoryObject
   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 DirectoryObject collection, max N pages
   311  func (r *OrgContactTransitiveMemberOfCollectionRequest) GetN(ctx context.Context, n int) ([]DirectoryObject, 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 DirectoryObject collection
   320  func (r *OrgContactTransitiveMemberOfCollectionRequest) Get(ctx context.Context) ([]DirectoryObject, error) {
   321  	return r.GetN(ctx, 0)
   322  }
   323  
   324  // Add performs POST request for DirectoryObject collection
   325  func (r *OrgContactTransitiveMemberOfCollectionRequest) Add(ctx context.Context, reqObj *DirectoryObject) (resObj *DirectoryObject, err error) {
   326  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   327  	return
   328  }