github.com/yaegashi/msgraph.go@v0.1.4/v1.0/ActionDrive.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 // DriveItemCheckinRequestParameter undocumented 15 type DriveItemCheckinRequestParameter struct { 16 // CheckInAs undocumented 17 CheckInAs *string `json:"checkInAs,omitempty"` 18 // Comment undocumented 19 Comment *string `json:"comment,omitempty"` 20 } 21 22 // DriveItemCheckoutRequestParameter undocumented 23 type DriveItemCheckoutRequestParameter struct { 24 } 25 26 // DriveItemCopyRequestParameter undocumented 27 type DriveItemCopyRequestParameter struct { 28 // Name undocumented 29 Name *string `json:"name,omitempty"` 30 // ParentReference undocumented 31 ParentReference *ItemReference `json:"parentReference,omitempty"` 32 } 33 34 // DriveItemCreateLinkRequestParameter undocumented 35 type DriveItemCreateLinkRequestParameter struct { 36 // Type undocumented 37 Type *string `json:"type,omitempty"` 38 // Scope undocumented 39 Scope *string `json:"scope,omitempty"` 40 } 41 42 // DriveItemCreateUploadSessionRequestParameter undocumented 43 type DriveItemCreateUploadSessionRequestParameter struct { 44 // Item undocumented 45 Item *DriveItemUploadableProperties `json:"item,omitempty"` 46 } 47 48 // DriveItemInviteRequestParameter undocumented 49 type DriveItemInviteRequestParameter struct { 50 // RequireSignIn undocumented 51 RequireSignIn *bool `json:"requireSignIn,omitempty"` 52 // Roles undocumented 53 Roles []string `json:"roles,omitempty"` 54 // SendInvitation undocumented 55 SendInvitation *bool `json:"sendInvitation,omitempty"` 56 // Message undocumented 57 Message *string `json:"message,omitempty"` 58 // Recipients undocumented 59 Recipients []DriveRecipient `json:"recipients,omitempty"` 60 } 61 62 // DriveItemPreviewRequestParameter undocumented 63 type DriveItemPreviewRequestParameter struct { 64 // Page undocumented 65 Page *string `json:"page,omitempty"` 66 // Zoom undocumented 67 Zoom *float64 `json:"zoom,omitempty"` 68 } 69 70 // DriveItemVersionRestoreVersionRequestParameter undocumented 71 type DriveItemVersionRestoreVersionRequestParameter struct { 72 } 73 74 // Items returns request builder for DriveItem collection 75 func (b *DriveRequestBuilder) Items() *DriveItemsCollectionRequestBuilder { 76 bb := &DriveItemsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 77 bb.baseURL += "/items" 78 return bb 79 } 80 81 // DriveItemsCollectionRequestBuilder is request builder for DriveItem collection 82 type DriveItemsCollectionRequestBuilder struct{ BaseRequestBuilder } 83 84 // Request returns request for DriveItem collection 85 func (b *DriveItemsCollectionRequestBuilder) Request() *DriveItemsCollectionRequest { 86 return &DriveItemsCollectionRequest{ 87 BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client}, 88 } 89 } 90 91 // ID returns request builder for DriveItem item 92 func (b *DriveItemsCollectionRequestBuilder) ID(id string) *DriveItemRequestBuilder { 93 bb := &DriveItemRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 94 bb.baseURL += "/" + id 95 return bb 96 } 97 98 // DriveItemsCollectionRequest is request for DriveItem collection 99 type DriveItemsCollectionRequest struct{ BaseRequest } 100 101 // Paging perfoms paging operation for DriveItem collection 102 func (r *DriveItemsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DriveItem, error) { 103 req, err := r.NewJSONRequest(method, path, obj) 104 if err != nil { 105 return nil, err 106 } 107 if ctx != nil { 108 req = req.WithContext(ctx) 109 } 110 res, err := r.client.Do(req) 111 if err != nil { 112 return nil, err 113 } 114 var values []DriveItem 115 for { 116 if res.StatusCode != http.StatusOK { 117 b, _ := ioutil.ReadAll(res.Body) 118 res.Body.Close() 119 errRes := &ErrorResponse{Response: res} 120 err := jsonx.Unmarshal(b, errRes) 121 if err != nil { 122 return nil, fmt.Errorf("%s: %s", res.Status, string(b)) 123 } 124 return nil, errRes 125 } 126 var ( 127 paging Paging 128 value []DriveItem 129 ) 130 err := jsonx.NewDecoder(res.Body).Decode(&paging) 131 res.Body.Close() 132 if err != nil { 133 return nil, err 134 } 135 err = jsonx.Unmarshal(paging.Value, &value) 136 if err != nil { 137 return nil, err 138 } 139 values = append(values, value...) 140 if n >= 0 { 141 n-- 142 } 143 if n == 0 || len(paging.NextLink) == 0 { 144 return values, nil 145 } 146 req, err = http.NewRequest("GET", paging.NextLink, nil) 147 if ctx != nil { 148 req = req.WithContext(ctx) 149 } 150 res, err = r.client.Do(req) 151 if err != nil { 152 return nil, err 153 } 154 } 155 } 156 157 // GetN performs GET request for DriveItem collection, max N pages 158 func (r *DriveItemsCollectionRequest) GetN(ctx context.Context, n int) ([]DriveItem, error) { 159 var query string 160 if r.query != nil { 161 query = "?" + r.query.Encode() 162 } 163 return r.Paging(ctx, "GET", query, nil, n) 164 } 165 166 // Get performs GET request for DriveItem collection 167 func (r *DriveItemsCollectionRequest) Get(ctx context.Context) ([]DriveItem, error) { 168 return r.GetN(ctx, 0) 169 } 170 171 // Add performs POST request for DriveItem collection 172 func (r *DriveItemsCollectionRequest) Add(ctx context.Context, reqObj *DriveItem) (resObj *DriveItem, err error) { 173 err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj) 174 return 175 } 176 177 // List is navigation property 178 func (b *DriveRequestBuilder) List() *ListRequestBuilder { 179 bb := &ListRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 180 bb.baseURL += "/list" 181 return bb 182 } 183 184 // Root is navigation property 185 func (b *DriveRequestBuilder) Root() *DriveItemRequestBuilder { 186 bb := &DriveItemRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 187 bb.baseURL += "/root" 188 return bb 189 } 190 191 // Special returns request builder for DriveItem collection 192 func (b *DriveRequestBuilder) Special() *DriveSpecialCollectionRequestBuilder { 193 bb := &DriveSpecialCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 194 bb.baseURL += "/special" 195 return bb 196 } 197 198 // DriveSpecialCollectionRequestBuilder is request builder for DriveItem collection 199 type DriveSpecialCollectionRequestBuilder struct{ BaseRequestBuilder } 200 201 // Request returns request for DriveItem collection 202 func (b *DriveSpecialCollectionRequestBuilder) Request() *DriveSpecialCollectionRequest { 203 return &DriveSpecialCollectionRequest{ 204 BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client}, 205 } 206 } 207 208 // ID returns request builder for DriveItem item 209 func (b *DriveSpecialCollectionRequestBuilder) ID(id string) *DriveItemRequestBuilder { 210 bb := &DriveItemRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 211 bb.baseURL += "/" + id 212 return bb 213 } 214 215 // DriveSpecialCollectionRequest is request for DriveItem collection 216 type DriveSpecialCollectionRequest struct{ BaseRequest } 217 218 // Paging perfoms paging operation for DriveItem collection 219 func (r *DriveSpecialCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DriveItem, error) { 220 req, err := r.NewJSONRequest(method, path, obj) 221 if err != nil { 222 return nil, err 223 } 224 if ctx != nil { 225 req = req.WithContext(ctx) 226 } 227 res, err := r.client.Do(req) 228 if err != nil { 229 return nil, err 230 } 231 var values []DriveItem 232 for { 233 if res.StatusCode != http.StatusOK { 234 b, _ := ioutil.ReadAll(res.Body) 235 res.Body.Close() 236 errRes := &ErrorResponse{Response: res} 237 err := jsonx.Unmarshal(b, errRes) 238 if err != nil { 239 return nil, fmt.Errorf("%s: %s", res.Status, string(b)) 240 } 241 return nil, errRes 242 } 243 var ( 244 paging Paging 245 value []DriveItem 246 ) 247 err := jsonx.NewDecoder(res.Body).Decode(&paging) 248 res.Body.Close() 249 if err != nil { 250 return nil, err 251 } 252 err = jsonx.Unmarshal(paging.Value, &value) 253 if err != nil { 254 return nil, err 255 } 256 values = append(values, value...) 257 if n >= 0 { 258 n-- 259 } 260 if n == 0 || len(paging.NextLink) == 0 { 261 return values, nil 262 } 263 req, err = http.NewRequest("GET", paging.NextLink, nil) 264 if ctx != nil { 265 req = req.WithContext(ctx) 266 } 267 res, err = r.client.Do(req) 268 if err != nil { 269 return nil, err 270 } 271 } 272 } 273 274 // GetN performs GET request for DriveItem collection, max N pages 275 func (r *DriveSpecialCollectionRequest) GetN(ctx context.Context, n int) ([]DriveItem, error) { 276 var query string 277 if r.query != nil { 278 query = "?" + r.query.Encode() 279 } 280 return r.Paging(ctx, "GET", query, nil, n) 281 } 282 283 // Get performs GET request for DriveItem collection 284 func (r *DriveSpecialCollectionRequest) Get(ctx context.Context) ([]DriveItem, error) { 285 return r.GetN(ctx, 0) 286 } 287 288 // Add performs POST request for DriveItem collection 289 func (r *DriveSpecialCollectionRequest) Add(ctx context.Context, reqObj *DriveItem) (resObj *DriveItem, err error) { 290 err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj) 291 return 292 } 293 294 // Analytics is navigation property 295 func (b *DriveItemRequestBuilder) Analytics() *ItemAnalyticsRequestBuilder { 296 bb := &ItemAnalyticsRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 297 bb.baseURL += "/analytics" 298 return bb 299 } 300 301 // Children returns request builder for DriveItem collection 302 func (b *DriveItemRequestBuilder) Children() *DriveItemChildrenCollectionRequestBuilder { 303 bb := &DriveItemChildrenCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 304 bb.baseURL += "/children" 305 return bb 306 } 307 308 // DriveItemChildrenCollectionRequestBuilder is request builder for DriveItem collection 309 type DriveItemChildrenCollectionRequestBuilder struct{ BaseRequestBuilder } 310 311 // Request returns request for DriveItem collection 312 func (b *DriveItemChildrenCollectionRequestBuilder) Request() *DriveItemChildrenCollectionRequest { 313 return &DriveItemChildrenCollectionRequest{ 314 BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client}, 315 } 316 } 317 318 // ID returns request builder for DriveItem item 319 func (b *DriveItemChildrenCollectionRequestBuilder) ID(id string) *DriveItemRequestBuilder { 320 bb := &DriveItemRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 321 bb.baseURL += "/" + id 322 return bb 323 } 324 325 // DriveItemChildrenCollectionRequest is request for DriveItem collection 326 type DriveItemChildrenCollectionRequest struct{ BaseRequest } 327 328 // Paging perfoms paging operation for DriveItem collection 329 func (r *DriveItemChildrenCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DriveItem, error) { 330 req, err := r.NewJSONRequest(method, path, obj) 331 if err != nil { 332 return nil, err 333 } 334 if ctx != nil { 335 req = req.WithContext(ctx) 336 } 337 res, err := r.client.Do(req) 338 if err != nil { 339 return nil, err 340 } 341 var values []DriveItem 342 for { 343 if res.StatusCode != http.StatusOK { 344 b, _ := ioutil.ReadAll(res.Body) 345 res.Body.Close() 346 errRes := &ErrorResponse{Response: res} 347 err := jsonx.Unmarshal(b, errRes) 348 if err != nil { 349 return nil, fmt.Errorf("%s: %s", res.Status, string(b)) 350 } 351 return nil, errRes 352 } 353 var ( 354 paging Paging 355 value []DriveItem 356 ) 357 err := jsonx.NewDecoder(res.Body).Decode(&paging) 358 res.Body.Close() 359 if err != nil { 360 return nil, err 361 } 362 err = jsonx.Unmarshal(paging.Value, &value) 363 if err != nil { 364 return nil, err 365 } 366 values = append(values, value...) 367 if n >= 0 { 368 n-- 369 } 370 if n == 0 || len(paging.NextLink) == 0 { 371 return values, nil 372 } 373 req, err = http.NewRequest("GET", paging.NextLink, nil) 374 if ctx != nil { 375 req = req.WithContext(ctx) 376 } 377 res, err = r.client.Do(req) 378 if err != nil { 379 return nil, err 380 } 381 } 382 } 383 384 // GetN performs GET request for DriveItem collection, max N pages 385 func (r *DriveItemChildrenCollectionRequest) GetN(ctx context.Context, n int) ([]DriveItem, error) { 386 var query string 387 if r.query != nil { 388 query = "?" + r.query.Encode() 389 } 390 return r.Paging(ctx, "GET", query, nil, n) 391 } 392 393 // Get performs GET request for DriveItem collection 394 func (r *DriveItemChildrenCollectionRequest) Get(ctx context.Context) ([]DriveItem, error) { 395 return r.GetN(ctx, 0) 396 } 397 398 // Add performs POST request for DriveItem collection 399 func (r *DriveItemChildrenCollectionRequest) Add(ctx context.Context, reqObj *DriveItem) (resObj *DriveItem, err error) { 400 err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj) 401 return 402 } 403 404 // ListItem is navigation property 405 func (b *DriveItemRequestBuilder) ListItem() *ListItemRequestBuilder { 406 bb := &ListItemRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 407 bb.baseURL += "/listItem" 408 return bb 409 } 410 411 // Permissions returns request builder for Permission collection 412 func (b *DriveItemRequestBuilder) Permissions() *DriveItemPermissionsCollectionRequestBuilder { 413 bb := &DriveItemPermissionsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 414 bb.baseURL += "/permissions" 415 return bb 416 } 417 418 // DriveItemPermissionsCollectionRequestBuilder is request builder for Permission collection 419 type DriveItemPermissionsCollectionRequestBuilder struct{ BaseRequestBuilder } 420 421 // Request returns request for Permission collection 422 func (b *DriveItemPermissionsCollectionRequestBuilder) Request() *DriveItemPermissionsCollectionRequest { 423 return &DriveItemPermissionsCollectionRequest{ 424 BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client}, 425 } 426 } 427 428 // ID returns request builder for Permission item 429 func (b *DriveItemPermissionsCollectionRequestBuilder) ID(id string) *PermissionRequestBuilder { 430 bb := &PermissionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 431 bb.baseURL += "/" + id 432 return bb 433 } 434 435 // DriveItemPermissionsCollectionRequest is request for Permission collection 436 type DriveItemPermissionsCollectionRequest struct{ BaseRequest } 437 438 // Paging perfoms paging operation for Permission collection 439 func (r *DriveItemPermissionsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Permission, error) { 440 req, err := r.NewJSONRequest(method, path, obj) 441 if err != nil { 442 return nil, err 443 } 444 if ctx != nil { 445 req = req.WithContext(ctx) 446 } 447 res, err := r.client.Do(req) 448 if err != nil { 449 return nil, err 450 } 451 var values []Permission 452 for { 453 if res.StatusCode != http.StatusOK { 454 b, _ := ioutil.ReadAll(res.Body) 455 res.Body.Close() 456 errRes := &ErrorResponse{Response: res} 457 err := jsonx.Unmarshal(b, errRes) 458 if err != nil { 459 return nil, fmt.Errorf("%s: %s", res.Status, string(b)) 460 } 461 return nil, errRes 462 } 463 var ( 464 paging Paging 465 value []Permission 466 ) 467 err := jsonx.NewDecoder(res.Body).Decode(&paging) 468 res.Body.Close() 469 if err != nil { 470 return nil, err 471 } 472 err = jsonx.Unmarshal(paging.Value, &value) 473 if err != nil { 474 return nil, err 475 } 476 values = append(values, value...) 477 if n >= 0 { 478 n-- 479 } 480 if n == 0 || len(paging.NextLink) == 0 { 481 return values, nil 482 } 483 req, err = http.NewRequest("GET", paging.NextLink, nil) 484 if ctx != nil { 485 req = req.WithContext(ctx) 486 } 487 res, err = r.client.Do(req) 488 if err != nil { 489 return nil, err 490 } 491 } 492 } 493 494 // GetN performs GET request for Permission collection, max N pages 495 func (r *DriveItemPermissionsCollectionRequest) GetN(ctx context.Context, n int) ([]Permission, error) { 496 var query string 497 if r.query != nil { 498 query = "?" + r.query.Encode() 499 } 500 return r.Paging(ctx, "GET", query, nil, n) 501 } 502 503 // Get performs GET request for Permission collection 504 func (r *DriveItemPermissionsCollectionRequest) Get(ctx context.Context) ([]Permission, error) { 505 return r.GetN(ctx, 0) 506 } 507 508 // Add performs POST request for Permission collection 509 func (r *DriveItemPermissionsCollectionRequest) Add(ctx context.Context, reqObj *Permission) (resObj *Permission, err error) { 510 err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj) 511 return 512 } 513 514 // Subscriptions returns request builder for Subscription collection 515 func (b *DriveItemRequestBuilder) Subscriptions() *DriveItemSubscriptionsCollectionRequestBuilder { 516 bb := &DriveItemSubscriptionsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 517 bb.baseURL += "/subscriptions" 518 return bb 519 } 520 521 // DriveItemSubscriptionsCollectionRequestBuilder is request builder for Subscription collection 522 type DriveItemSubscriptionsCollectionRequestBuilder struct{ BaseRequestBuilder } 523 524 // Request returns request for Subscription collection 525 func (b *DriveItemSubscriptionsCollectionRequestBuilder) Request() *DriveItemSubscriptionsCollectionRequest { 526 return &DriveItemSubscriptionsCollectionRequest{ 527 BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client}, 528 } 529 } 530 531 // ID returns request builder for Subscription item 532 func (b *DriveItemSubscriptionsCollectionRequestBuilder) ID(id string) *SubscriptionRequestBuilder { 533 bb := &SubscriptionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 534 bb.baseURL += "/" + id 535 return bb 536 } 537 538 // DriveItemSubscriptionsCollectionRequest is request for Subscription collection 539 type DriveItemSubscriptionsCollectionRequest struct{ BaseRequest } 540 541 // Paging perfoms paging operation for Subscription collection 542 func (r *DriveItemSubscriptionsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Subscription, error) { 543 req, err := r.NewJSONRequest(method, path, obj) 544 if err != nil { 545 return nil, err 546 } 547 if ctx != nil { 548 req = req.WithContext(ctx) 549 } 550 res, err := r.client.Do(req) 551 if err != nil { 552 return nil, err 553 } 554 var values []Subscription 555 for { 556 if res.StatusCode != http.StatusOK { 557 b, _ := ioutil.ReadAll(res.Body) 558 res.Body.Close() 559 errRes := &ErrorResponse{Response: res} 560 err := jsonx.Unmarshal(b, errRes) 561 if err != nil { 562 return nil, fmt.Errorf("%s: %s", res.Status, string(b)) 563 } 564 return nil, errRes 565 } 566 var ( 567 paging Paging 568 value []Subscription 569 ) 570 err := jsonx.NewDecoder(res.Body).Decode(&paging) 571 res.Body.Close() 572 if err != nil { 573 return nil, err 574 } 575 err = jsonx.Unmarshal(paging.Value, &value) 576 if err != nil { 577 return nil, err 578 } 579 values = append(values, value...) 580 if n >= 0 { 581 n-- 582 } 583 if n == 0 || len(paging.NextLink) == 0 { 584 return values, nil 585 } 586 req, err = http.NewRequest("GET", paging.NextLink, nil) 587 if ctx != nil { 588 req = req.WithContext(ctx) 589 } 590 res, err = r.client.Do(req) 591 if err != nil { 592 return nil, err 593 } 594 } 595 } 596 597 // GetN performs GET request for Subscription collection, max N pages 598 func (r *DriveItemSubscriptionsCollectionRequest) GetN(ctx context.Context, n int) ([]Subscription, error) { 599 var query string 600 if r.query != nil { 601 query = "?" + r.query.Encode() 602 } 603 return r.Paging(ctx, "GET", query, nil, n) 604 } 605 606 // Get performs GET request for Subscription collection 607 func (r *DriveItemSubscriptionsCollectionRequest) Get(ctx context.Context) ([]Subscription, error) { 608 return r.GetN(ctx, 0) 609 } 610 611 // Add performs POST request for Subscription collection 612 func (r *DriveItemSubscriptionsCollectionRequest) Add(ctx context.Context, reqObj *Subscription) (resObj *Subscription, err error) { 613 err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj) 614 return 615 } 616 617 // Thumbnails returns request builder for ThumbnailSet collection 618 func (b *DriveItemRequestBuilder) Thumbnails() *DriveItemThumbnailsCollectionRequestBuilder { 619 bb := &DriveItemThumbnailsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 620 bb.baseURL += "/thumbnails" 621 return bb 622 } 623 624 // DriveItemThumbnailsCollectionRequestBuilder is request builder for ThumbnailSet collection 625 type DriveItemThumbnailsCollectionRequestBuilder struct{ BaseRequestBuilder } 626 627 // Request returns request for ThumbnailSet collection 628 func (b *DriveItemThumbnailsCollectionRequestBuilder) Request() *DriveItemThumbnailsCollectionRequest { 629 return &DriveItemThumbnailsCollectionRequest{ 630 BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client}, 631 } 632 } 633 634 // ID returns request builder for ThumbnailSet item 635 func (b *DriveItemThumbnailsCollectionRequestBuilder) ID(id string) *ThumbnailSetRequestBuilder { 636 bb := &ThumbnailSetRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 637 bb.baseURL += "/" + id 638 return bb 639 } 640 641 // DriveItemThumbnailsCollectionRequest is request for ThumbnailSet collection 642 type DriveItemThumbnailsCollectionRequest struct{ BaseRequest } 643 644 // Paging perfoms paging operation for ThumbnailSet collection 645 func (r *DriveItemThumbnailsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]ThumbnailSet, error) { 646 req, err := r.NewJSONRequest(method, path, obj) 647 if err != nil { 648 return nil, err 649 } 650 if ctx != nil { 651 req = req.WithContext(ctx) 652 } 653 res, err := r.client.Do(req) 654 if err != nil { 655 return nil, err 656 } 657 var values []ThumbnailSet 658 for { 659 if res.StatusCode != http.StatusOK { 660 b, _ := ioutil.ReadAll(res.Body) 661 res.Body.Close() 662 errRes := &ErrorResponse{Response: res} 663 err := jsonx.Unmarshal(b, errRes) 664 if err != nil { 665 return nil, fmt.Errorf("%s: %s", res.Status, string(b)) 666 } 667 return nil, errRes 668 } 669 var ( 670 paging Paging 671 value []ThumbnailSet 672 ) 673 err := jsonx.NewDecoder(res.Body).Decode(&paging) 674 res.Body.Close() 675 if err != nil { 676 return nil, err 677 } 678 err = jsonx.Unmarshal(paging.Value, &value) 679 if err != nil { 680 return nil, err 681 } 682 values = append(values, value...) 683 if n >= 0 { 684 n-- 685 } 686 if n == 0 || len(paging.NextLink) == 0 { 687 return values, nil 688 } 689 req, err = http.NewRequest("GET", paging.NextLink, nil) 690 if ctx != nil { 691 req = req.WithContext(ctx) 692 } 693 res, err = r.client.Do(req) 694 if err != nil { 695 return nil, err 696 } 697 } 698 } 699 700 // GetN performs GET request for ThumbnailSet collection, max N pages 701 func (r *DriveItemThumbnailsCollectionRequest) GetN(ctx context.Context, n int) ([]ThumbnailSet, error) { 702 var query string 703 if r.query != nil { 704 query = "?" + r.query.Encode() 705 } 706 return r.Paging(ctx, "GET", query, nil, n) 707 } 708 709 // Get performs GET request for ThumbnailSet collection 710 func (r *DriveItemThumbnailsCollectionRequest) Get(ctx context.Context) ([]ThumbnailSet, error) { 711 return r.GetN(ctx, 0) 712 } 713 714 // Add performs POST request for ThumbnailSet collection 715 func (r *DriveItemThumbnailsCollectionRequest) Add(ctx context.Context, reqObj *ThumbnailSet) (resObj *ThumbnailSet, err error) { 716 err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj) 717 return 718 } 719 720 // Versions returns request builder for DriveItemVersion collection 721 func (b *DriveItemRequestBuilder) Versions() *DriveItemVersionsCollectionRequestBuilder { 722 bb := &DriveItemVersionsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 723 bb.baseURL += "/versions" 724 return bb 725 } 726 727 // DriveItemVersionsCollectionRequestBuilder is request builder for DriveItemVersion collection 728 type DriveItemVersionsCollectionRequestBuilder struct{ BaseRequestBuilder } 729 730 // Request returns request for DriveItemVersion collection 731 func (b *DriveItemVersionsCollectionRequestBuilder) Request() *DriveItemVersionsCollectionRequest { 732 return &DriveItemVersionsCollectionRequest{ 733 BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client}, 734 } 735 } 736 737 // ID returns request builder for DriveItemVersion item 738 func (b *DriveItemVersionsCollectionRequestBuilder) ID(id string) *DriveItemVersionRequestBuilder { 739 bb := &DriveItemVersionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 740 bb.baseURL += "/" + id 741 return bb 742 } 743 744 // DriveItemVersionsCollectionRequest is request for DriveItemVersion collection 745 type DriveItemVersionsCollectionRequest struct{ BaseRequest } 746 747 // Paging perfoms paging operation for DriveItemVersion collection 748 func (r *DriveItemVersionsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DriveItemVersion, error) { 749 req, err := r.NewJSONRequest(method, path, obj) 750 if err != nil { 751 return nil, err 752 } 753 if ctx != nil { 754 req = req.WithContext(ctx) 755 } 756 res, err := r.client.Do(req) 757 if err != nil { 758 return nil, err 759 } 760 var values []DriveItemVersion 761 for { 762 if res.StatusCode != http.StatusOK { 763 b, _ := ioutil.ReadAll(res.Body) 764 res.Body.Close() 765 errRes := &ErrorResponse{Response: res} 766 err := jsonx.Unmarshal(b, errRes) 767 if err != nil { 768 return nil, fmt.Errorf("%s: %s", res.Status, string(b)) 769 } 770 return nil, errRes 771 } 772 var ( 773 paging Paging 774 value []DriveItemVersion 775 ) 776 err := jsonx.NewDecoder(res.Body).Decode(&paging) 777 res.Body.Close() 778 if err != nil { 779 return nil, err 780 } 781 err = jsonx.Unmarshal(paging.Value, &value) 782 if err != nil { 783 return nil, err 784 } 785 values = append(values, value...) 786 if n >= 0 { 787 n-- 788 } 789 if n == 0 || len(paging.NextLink) == 0 { 790 return values, nil 791 } 792 req, err = http.NewRequest("GET", paging.NextLink, nil) 793 if ctx != nil { 794 req = req.WithContext(ctx) 795 } 796 res, err = r.client.Do(req) 797 if err != nil { 798 return nil, err 799 } 800 } 801 } 802 803 // GetN performs GET request for DriveItemVersion collection, max N pages 804 func (r *DriveItemVersionsCollectionRequest) GetN(ctx context.Context, n int) ([]DriveItemVersion, error) { 805 var query string 806 if r.query != nil { 807 query = "?" + r.query.Encode() 808 } 809 return r.Paging(ctx, "GET", query, nil, n) 810 } 811 812 // Get performs GET request for DriveItemVersion collection 813 func (r *DriveItemVersionsCollectionRequest) Get(ctx context.Context) ([]DriveItemVersion, error) { 814 return r.GetN(ctx, 0) 815 } 816 817 // Add performs POST request for DriveItemVersion collection 818 func (r *DriveItemVersionsCollectionRequest) Add(ctx context.Context, reqObj *DriveItemVersion) (resObj *DriveItemVersion, err error) { 819 err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj) 820 return 821 } 822 823 // Workbook is navigation property 824 func (b *DriveItemRequestBuilder) Workbook() *WorkbookRequestBuilder { 825 bb := &WorkbookRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 826 bb.baseURL += "/workbook" 827 return bb 828 }