github.com/yaegashi/msgraph.go@v0.1.4/v1.0/ActionRole.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 // RoleDefinition is navigation property 15 func (b *RoleAssignmentRequestBuilder) RoleDefinition() *RoleDefinitionRequestBuilder { 16 bb := &RoleDefinitionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 17 bb.baseURL += "/roleDefinition" 18 return bb 19 } 20 21 // RoleAssignments returns request builder for RoleAssignment collection 22 func (b *RoleDefinitionRequestBuilder) RoleAssignments() *RoleDefinitionRoleAssignmentsCollectionRequestBuilder { 23 bb := &RoleDefinitionRoleAssignmentsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 24 bb.baseURL += "/roleAssignments" 25 return bb 26 } 27 28 // RoleDefinitionRoleAssignmentsCollectionRequestBuilder is request builder for RoleAssignment collection 29 type RoleDefinitionRoleAssignmentsCollectionRequestBuilder struct{ BaseRequestBuilder } 30 31 // Request returns request for RoleAssignment collection 32 func (b *RoleDefinitionRoleAssignmentsCollectionRequestBuilder) Request() *RoleDefinitionRoleAssignmentsCollectionRequest { 33 return &RoleDefinitionRoleAssignmentsCollectionRequest{ 34 BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client}, 35 } 36 } 37 38 // ID returns request builder for RoleAssignment item 39 func (b *RoleDefinitionRoleAssignmentsCollectionRequestBuilder) ID(id string) *RoleAssignmentRequestBuilder { 40 bb := &RoleAssignmentRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 41 bb.baseURL += "/" + id 42 return bb 43 } 44 45 // RoleDefinitionRoleAssignmentsCollectionRequest is request for RoleAssignment collection 46 type RoleDefinitionRoleAssignmentsCollectionRequest struct{ BaseRequest } 47 48 // Paging perfoms paging operation for RoleAssignment collection 49 func (r *RoleDefinitionRoleAssignmentsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]RoleAssignment, 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 []RoleAssignment 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 []RoleAssignment 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 RoleAssignment collection, max N pages 105 func (r *RoleDefinitionRoleAssignmentsCollectionRequest) GetN(ctx context.Context, n int) ([]RoleAssignment, 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 RoleAssignment collection 114 func (r *RoleDefinitionRoleAssignmentsCollectionRequest) Get(ctx context.Context) ([]RoleAssignment, error) { 115 return r.GetN(ctx, 0) 116 } 117 118 // Add performs POST request for RoleAssignment collection 119 func (r *RoleDefinitionRoleAssignmentsCollectionRequest) Add(ctx context.Context, reqObj *RoleAssignment) (resObj *RoleAssignment, err error) { 120 err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj) 121 return 122 }