github.com/yaegashi/msgraph.go@v0.1.4/beta/ActionShared.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 // DriveItem is navigation property 15 func (b *SharedDriveItemRequestBuilder) DriveItem() *DriveItemRequestBuilder { 16 bb := &DriveItemRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 17 bb.baseURL += "/driveItem" 18 return bb 19 } 20 21 // Items returns request builder for DriveItem collection 22 func (b *SharedDriveItemRequestBuilder) Items() *SharedDriveItemItemsCollectionRequestBuilder { 23 bb := &SharedDriveItemItemsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 24 bb.baseURL += "/items" 25 return bb 26 } 27 28 // SharedDriveItemItemsCollectionRequestBuilder is request builder for DriveItem collection 29 type SharedDriveItemItemsCollectionRequestBuilder struct{ BaseRequestBuilder } 30 31 // Request returns request for DriveItem collection 32 func (b *SharedDriveItemItemsCollectionRequestBuilder) Request() *SharedDriveItemItemsCollectionRequest { 33 return &SharedDriveItemItemsCollectionRequest{ 34 BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client}, 35 } 36 } 37 38 // ID returns request builder for DriveItem item 39 func (b *SharedDriveItemItemsCollectionRequestBuilder) ID(id string) *DriveItemRequestBuilder { 40 bb := &DriveItemRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 41 bb.baseURL += "/" + id 42 return bb 43 } 44 45 // SharedDriveItemItemsCollectionRequest is request for DriveItem collection 46 type SharedDriveItemItemsCollectionRequest struct{ BaseRequest } 47 48 // Paging perfoms paging operation for DriveItem collection 49 func (r *SharedDriveItemItemsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DriveItem, 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 []DriveItem 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 []DriveItem 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 DriveItem collection, max N pages 105 func (r *SharedDriveItemItemsCollectionRequest) GetN(ctx context.Context, n int) ([]DriveItem, 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 DriveItem collection 114 func (r *SharedDriveItemItemsCollectionRequest) Get(ctx context.Context) ([]DriveItem, error) { 115 return r.GetN(ctx, 0) 116 } 117 118 // Add performs POST request for DriveItem collection 119 func (r *SharedDriveItemItemsCollectionRequest) Add(ctx context.Context, reqObj *DriveItem) (resObj *DriveItem, err error) { 120 err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj) 121 return 122 } 123 124 // List is navigation property 125 func (b *SharedDriveItemRequestBuilder) List() *ListRequestBuilder { 126 bb := &ListRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 127 bb.baseURL += "/list" 128 return bb 129 } 130 131 // ListItem is navigation property 132 func (b *SharedDriveItemRequestBuilder) ListItem() *ListItemRequestBuilder { 133 bb := &ListItemRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 134 bb.baseURL += "/listItem" 135 return bb 136 } 137 138 // Permission is navigation property 139 func (b *SharedDriveItemRequestBuilder) Permission() *PermissionRequestBuilder { 140 bb := &PermissionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 141 bb.baseURL += "/permission" 142 return bb 143 } 144 145 // Root is navigation property 146 func (b *SharedDriveItemRequestBuilder) Root() *DriveItemRequestBuilder { 147 bb := &DriveItemRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 148 bb.baseURL += "/root" 149 return bb 150 } 151 152 // Site is navigation property 153 func (b *SharedDriveItemRequestBuilder) Site() *SiteRequestBuilder { 154 bb := &SiteRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 155 bb.baseURL += "/site" 156 return bb 157 } 158 159 // LastSharedMethod is navigation property 160 func (b *SharedInsightRequestBuilder) LastSharedMethod() *EntityRequestBuilder { 161 bb := &EntityRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 162 bb.baseURL += "/lastSharedMethod" 163 return bb 164 } 165 166 // Resource is navigation property 167 func (b *SharedInsightRequestBuilder) Resource() *EntityRequestBuilder { 168 bb := &EntityRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 169 bb.baseURL += "/resource" 170 return bb 171 }