github.com/yaegashi/msgraph.go@v0.1.4/beta/ActionProfile.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 // Account returns request builder for UserAccountInformation collection 15 func (b *ProfileRequestBuilder) Account() *ProfileAccountCollectionRequestBuilder { 16 bb := &ProfileAccountCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 17 bb.baseURL += "/account" 18 return bb 19 } 20 21 // ProfileAccountCollectionRequestBuilder is request builder for UserAccountInformation collection 22 type ProfileAccountCollectionRequestBuilder struct{ BaseRequestBuilder } 23 24 // Request returns request for UserAccountInformation collection 25 func (b *ProfileAccountCollectionRequestBuilder) Request() *ProfileAccountCollectionRequest { 26 return &ProfileAccountCollectionRequest{ 27 BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client}, 28 } 29 } 30 31 // ID returns request builder for UserAccountInformation item 32 func (b *ProfileAccountCollectionRequestBuilder) ID(id string) *UserAccountInformationRequestBuilder { 33 bb := &UserAccountInformationRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 34 bb.baseURL += "/" + id 35 return bb 36 } 37 38 // ProfileAccountCollectionRequest is request for UserAccountInformation collection 39 type ProfileAccountCollectionRequest struct{ BaseRequest } 40 41 // Paging perfoms paging operation for UserAccountInformation collection 42 func (r *ProfileAccountCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]UserAccountInformation, 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 []UserAccountInformation 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 []UserAccountInformation 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 UserAccountInformation collection, max N pages 98 func (r *ProfileAccountCollectionRequest) GetN(ctx context.Context, n int) ([]UserAccountInformation, 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 UserAccountInformation collection 107 func (r *ProfileAccountCollectionRequest) Get(ctx context.Context) ([]UserAccountInformation, error) { 108 return r.GetN(ctx, 0) 109 } 110 111 // Add performs POST request for UserAccountInformation collection 112 func (r *ProfileAccountCollectionRequest) Add(ctx context.Context, reqObj *UserAccountInformation) (resObj *UserAccountInformation, err error) { 113 err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj) 114 return 115 } 116 117 // Anniversaries returns request builder for PersonAnniversary collection 118 func (b *ProfileRequestBuilder) Anniversaries() *ProfileAnniversariesCollectionRequestBuilder { 119 bb := &ProfileAnniversariesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 120 bb.baseURL += "/anniversaries" 121 return bb 122 } 123 124 // ProfileAnniversariesCollectionRequestBuilder is request builder for PersonAnniversary collection 125 type ProfileAnniversariesCollectionRequestBuilder struct{ BaseRequestBuilder } 126 127 // Request returns request for PersonAnniversary collection 128 func (b *ProfileAnniversariesCollectionRequestBuilder) Request() *ProfileAnniversariesCollectionRequest { 129 return &ProfileAnniversariesCollectionRequest{ 130 BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client}, 131 } 132 } 133 134 // ID returns request builder for PersonAnniversary item 135 func (b *ProfileAnniversariesCollectionRequestBuilder) ID(id string) *PersonAnniversaryRequestBuilder { 136 bb := &PersonAnniversaryRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 137 bb.baseURL += "/" + id 138 return bb 139 } 140 141 // ProfileAnniversariesCollectionRequest is request for PersonAnniversary collection 142 type ProfileAnniversariesCollectionRequest struct{ BaseRequest } 143 144 // Paging perfoms paging operation for PersonAnniversary collection 145 func (r *ProfileAnniversariesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]PersonAnniversary, error) { 146 req, err := r.NewJSONRequest(method, path, obj) 147 if err != nil { 148 return nil, err 149 } 150 if ctx != nil { 151 req = req.WithContext(ctx) 152 } 153 res, err := r.client.Do(req) 154 if err != nil { 155 return nil, err 156 } 157 var values []PersonAnniversary 158 for { 159 if res.StatusCode != http.StatusOK { 160 b, _ := ioutil.ReadAll(res.Body) 161 res.Body.Close() 162 errRes := &ErrorResponse{Response: res} 163 err := jsonx.Unmarshal(b, errRes) 164 if err != nil { 165 return nil, fmt.Errorf("%s: %s", res.Status, string(b)) 166 } 167 return nil, errRes 168 } 169 var ( 170 paging Paging 171 value []PersonAnniversary 172 ) 173 err := jsonx.NewDecoder(res.Body).Decode(&paging) 174 res.Body.Close() 175 if err != nil { 176 return nil, err 177 } 178 err = jsonx.Unmarshal(paging.Value, &value) 179 if err != nil { 180 return nil, err 181 } 182 values = append(values, value...) 183 if n >= 0 { 184 n-- 185 } 186 if n == 0 || len(paging.NextLink) == 0 { 187 return values, nil 188 } 189 req, err = http.NewRequest("GET", paging.NextLink, nil) 190 if ctx != nil { 191 req = req.WithContext(ctx) 192 } 193 res, err = r.client.Do(req) 194 if err != nil { 195 return nil, err 196 } 197 } 198 } 199 200 // GetN performs GET request for PersonAnniversary collection, max N pages 201 func (r *ProfileAnniversariesCollectionRequest) GetN(ctx context.Context, n int) ([]PersonAnniversary, error) { 202 var query string 203 if r.query != nil { 204 query = "?" + r.query.Encode() 205 } 206 return r.Paging(ctx, "GET", query, nil, n) 207 } 208 209 // Get performs GET request for PersonAnniversary collection 210 func (r *ProfileAnniversariesCollectionRequest) Get(ctx context.Context) ([]PersonAnniversary, error) { 211 return r.GetN(ctx, 0) 212 } 213 214 // Add performs POST request for PersonAnniversary collection 215 func (r *ProfileAnniversariesCollectionRequest) Add(ctx context.Context, reqObj *PersonAnniversary) (resObj *PersonAnniversary, err error) { 216 err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj) 217 return 218 } 219 220 // EducationalActivities returns request builder for EducationalActivity collection 221 func (b *ProfileRequestBuilder) EducationalActivities() *ProfileEducationalActivitiesCollectionRequestBuilder { 222 bb := &ProfileEducationalActivitiesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 223 bb.baseURL += "/educationalActivities" 224 return bb 225 } 226 227 // ProfileEducationalActivitiesCollectionRequestBuilder is request builder for EducationalActivity collection 228 type ProfileEducationalActivitiesCollectionRequestBuilder struct{ BaseRequestBuilder } 229 230 // Request returns request for EducationalActivity collection 231 func (b *ProfileEducationalActivitiesCollectionRequestBuilder) Request() *ProfileEducationalActivitiesCollectionRequest { 232 return &ProfileEducationalActivitiesCollectionRequest{ 233 BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client}, 234 } 235 } 236 237 // ID returns request builder for EducationalActivity item 238 func (b *ProfileEducationalActivitiesCollectionRequestBuilder) ID(id string) *EducationalActivityRequestBuilder { 239 bb := &EducationalActivityRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 240 bb.baseURL += "/" + id 241 return bb 242 } 243 244 // ProfileEducationalActivitiesCollectionRequest is request for EducationalActivity collection 245 type ProfileEducationalActivitiesCollectionRequest struct{ BaseRequest } 246 247 // Paging perfoms paging operation for EducationalActivity collection 248 func (r *ProfileEducationalActivitiesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]EducationalActivity, error) { 249 req, err := r.NewJSONRequest(method, path, obj) 250 if err != nil { 251 return nil, err 252 } 253 if ctx != nil { 254 req = req.WithContext(ctx) 255 } 256 res, err := r.client.Do(req) 257 if err != nil { 258 return nil, err 259 } 260 var values []EducationalActivity 261 for { 262 if res.StatusCode != http.StatusOK { 263 b, _ := ioutil.ReadAll(res.Body) 264 res.Body.Close() 265 errRes := &ErrorResponse{Response: res} 266 err := jsonx.Unmarshal(b, errRes) 267 if err != nil { 268 return nil, fmt.Errorf("%s: %s", res.Status, string(b)) 269 } 270 return nil, errRes 271 } 272 var ( 273 paging Paging 274 value []EducationalActivity 275 ) 276 err := jsonx.NewDecoder(res.Body).Decode(&paging) 277 res.Body.Close() 278 if err != nil { 279 return nil, err 280 } 281 err = jsonx.Unmarshal(paging.Value, &value) 282 if err != nil { 283 return nil, err 284 } 285 values = append(values, value...) 286 if n >= 0 { 287 n-- 288 } 289 if n == 0 || len(paging.NextLink) == 0 { 290 return values, nil 291 } 292 req, err = http.NewRequest("GET", paging.NextLink, nil) 293 if ctx != nil { 294 req = req.WithContext(ctx) 295 } 296 res, err = r.client.Do(req) 297 if err != nil { 298 return nil, err 299 } 300 } 301 } 302 303 // GetN performs GET request for EducationalActivity collection, max N pages 304 func (r *ProfileEducationalActivitiesCollectionRequest) GetN(ctx context.Context, n int) ([]EducationalActivity, error) { 305 var query string 306 if r.query != nil { 307 query = "?" + r.query.Encode() 308 } 309 return r.Paging(ctx, "GET", query, nil, n) 310 } 311 312 // Get performs GET request for EducationalActivity collection 313 func (r *ProfileEducationalActivitiesCollectionRequest) Get(ctx context.Context) ([]EducationalActivity, error) { 314 return r.GetN(ctx, 0) 315 } 316 317 // Add performs POST request for EducationalActivity collection 318 func (r *ProfileEducationalActivitiesCollectionRequest) Add(ctx context.Context, reqObj *EducationalActivity) (resObj *EducationalActivity, err error) { 319 err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj) 320 return 321 } 322 323 // Emails returns request builder for ItemEmail collection 324 func (b *ProfileRequestBuilder) Emails() *ProfileEmailsCollectionRequestBuilder { 325 bb := &ProfileEmailsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 326 bb.baseURL += "/emails" 327 return bb 328 } 329 330 // ProfileEmailsCollectionRequestBuilder is request builder for ItemEmail collection 331 type ProfileEmailsCollectionRequestBuilder struct{ BaseRequestBuilder } 332 333 // Request returns request for ItemEmail collection 334 func (b *ProfileEmailsCollectionRequestBuilder) Request() *ProfileEmailsCollectionRequest { 335 return &ProfileEmailsCollectionRequest{ 336 BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client}, 337 } 338 } 339 340 // ID returns request builder for ItemEmail item 341 func (b *ProfileEmailsCollectionRequestBuilder) ID(id string) *ItemEmailRequestBuilder { 342 bb := &ItemEmailRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 343 bb.baseURL += "/" + id 344 return bb 345 } 346 347 // ProfileEmailsCollectionRequest is request for ItemEmail collection 348 type ProfileEmailsCollectionRequest struct{ BaseRequest } 349 350 // Paging perfoms paging operation for ItemEmail collection 351 func (r *ProfileEmailsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]ItemEmail, error) { 352 req, err := r.NewJSONRequest(method, path, obj) 353 if err != nil { 354 return nil, err 355 } 356 if ctx != nil { 357 req = req.WithContext(ctx) 358 } 359 res, err := r.client.Do(req) 360 if err != nil { 361 return nil, err 362 } 363 var values []ItemEmail 364 for { 365 if res.StatusCode != http.StatusOK { 366 b, _ := ioutil.ReadAll(res.Body) 367 res.Body.Close() 368 errRes := &ErrorResponse{Response: res} 369 err := jsonx.Unmarshal(b, errRes) 370 if err != nil { 371 return nil, fmt.Errorf("%s: %s", res.Status, string(b)) 372 } 373 return nil, errRes 374 } 375 var ( 376 paging Paging 377 value []ItemEmail 378 ) 379 err := jsonx.NewDecoder(res.Body).Decode(&paging) 380 res.Body.Close() 381 if err != nil { 382 return nil, err 383 } 384 err = jsonx.Unmarshal(paging.Value, &value) 385 if err != nil { 386 return nil, err 387 } 388 values = append(values, value...) 389 if n >= 0 { 390 n-- 391 } 392 if n == 0 || len(paging.NextLink) == 0 { 393 return values, nil 394 } 395 req, err = http.NewRequest("GET", paging.NextLink, nil) 396 if ctx != nil { 397 req = req.WithContext(ctx) 398 } 399 res, err = r.client.Do(req) 400 if err != nil { 401 return nil, err 402 } 403 } 404 } 405 406 // GetN performs GET request for ItemEmail collection, max N pages 407 func (r *ProfileEmailsCollectionRequest) GetN(ctx context.Context, n int) ([]ItemEmail, error) { 408 var query string 409 if r.query != nil { 410 query = "?" + r.query.Encode() 411 } 412 return r.Paging(ctx, "GET", query, nil, n) 413 } 414 415 // Get performs GET request for ItemEmail collection 416 func (r *ProfileEmailsCollectionRequest) Get(ctx context.Context) ([]ItemEmail, error) { 417 return r.GetN(ctx, 0) 418 } 419 420 // Add performs POST request for ItemEmail collection 421 func (r *ProfileEmailsCollectionRequest) Add(ctx context.Context, reqObj *ItemEmail) (resObj *ItemEmail, err error) { 422 err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj) 423 return 424 } 425 426 // Interests returns request builder for PersonInterest collection 427 func (b *ProfileRequestBuilder) Interests() *ProfileInterestsCollectionRequestBuilder { 428 bb := &ProfileInterestsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 429 bb.baseURL += "/interests" 430 return bb 431 } 432 433 // ProfileInterestsCollectionRequestBuilder is request builder for PersonInterest collection 434 type ProfileInterestsCollectionRequestBuilder struct{ BaseRequestBuilder } 435 436 // Request returns request for PersonInterest collection 437 func (b *ProfileInterestsCollectionRequestBuilder) Request() *ProfileInterestsCollectionRequest { 438 return &ProfileInterestsCollectionRequest{ 439 BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client}, 440 } 441 } 442 443 // ID returns request builder for PersonInterest item 444 func (b *ProfileInterestsCollectionRequestBuilder) ID(id string) *PersonInterestRequestBuilder { 445 bb := &PersonInterestRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 446 bb.baseURL += "/" + id 447 return bb 448 } 449 450 // ProfileInterestsCollectionRequest is request for PersonInterest collection 451 type ProfileInterestsCollectionRequest struct{ BaseRequest } 452 453 // Paging perfoms paging operation for PersonInterest collection 454 func (r *ProfileInterestsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]PersonInterest, error) { 455 req, err := r.NewJSONRequest(method, path, obj) 456 if err != nil { 457 return nil, err 458 } 459 if ctx != nil { 460 req = req.WithContext(ctx) 461 } 462 res, err := r.client.Do(req) 463 if err != nil { 464 return nil, err 465 } 466 var values []PersonInterest 467 for { 468 if res.StatusCode != http.StatusOK { 469 b, _ := ioutil.ReadAll(res.Body) 470 res.Body.Close() 471 errRes := &ErrorResponse{Response: res} 472 err := jsonx.Unmarshal(b, errRes) 473 if err != nil { 474 return nil, fmt.Errorf("%s: %s", res.Status, string(b)) 475 } 476 return nil, errRes 477 } 478 var ( 479 paging Paging 480 value []PersonInterest 481 ) 482 err := jsonx.NewDecoder(res.Body).Decode(&paging) 483 res.Body.Close() 484 if err != nil { 485 return nil, err 486 } 487 err = jsonx.Unmarshal(paging.Value, &value) 488 if err != nil { 489 return nil, err 490 } 491 values = append(values, value...) 492 if n >= 0 { 493 n-- 494 } 495 if n == 0 || len(paging.NextLink) == 0 { 496 return values, nil 497 } 498 req, err = http.NewRequest("GET", paging.NextLink, nil) 499 if ctx != nil { 500 req = req.WithContext(ctx) 501 } 502 res, err = r.client.Do(req) 503 if err != nil { 504 return nil, err 505 } 506 } 507 } 508 509 // GetN performs GET request for PersonInterest collection, max N pages 510 func (r *ProfileInterestsCollectionRequest) GetN(ctx context.Context, n int) ([]PersonInterest, error) { 511 var query string 512 if r.query != nil { 513 query = "?" + r.query.Encode() 514 } 515 return r.Paging(ctx, "GET", query, nil, n) 516 } 517 518 // Get performs GET request for PersonInterest collection 519 func (r *ProfileInterestsCollectionRequest) Get(ctx context.Context) ([]PersonInterest, error) { 520 return r.GetN(ctx, 0) 521 } 522 523 // Add performs POST request for PersonInterest collection 524 func (r *ProfileInterestsCollectionRequest) Add(ctx context.Context, reqObj *PersonInterest) (resObj *PersonInterest, err error) { 525 err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj) 526 return 527 } 528 529 // Languages returns request builder for LanguageProficiency collection 530 func (b *ProfileRequestBuilder) Languages() *ProfileLanguagesCollectionRequestBuilder { 531 bb := &ProfileLanguagesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 532 bb.baseURL += "/languages" 533 return bb 534 } 535 536 // ProfileLanguagesCollectionRequestBuilder is request builder for LanguageProficiency collection 537 type ProfileLanguagesCollectionRequestBuilder struct{ BaseRequestBuilder } 538 539 // Request returns request for LanguageProficiency collection 540 func (b *ProfileLanguagesCollectionRequestBuilder) Request() *ProfileLanguagesCollectionRequest { 541 return &ProfileLanguagesCollectionRequest{ 542 BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client}, 543 } 544 } 545 546 // ID returns request builder for LanguageProficiency item 547 func (b *ProfileLanguagesCollectionRequestBuilder) ID(id string) *LanguageProficiencyRequestBuilder { 548 bb := &LanguageProficiencyRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 549 bb.baseURL += "/" + id 550 return bb 551 } 552 553 // ProfileLanguagesCollectionRequest is request for LanguageProficiency collection 554 type ProfileLanguagesCollectionRequest struct{ BaseRequest } 555 556 // Paging perfoms paging operation for LanguageProficiency collection 557 func (r *ProfileLanguagesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]LanguageProficiency, error) { 558 req, err := r.NewJSONRequest(method, path, obj) 559 if err != nil { 560 return nil, err 561 } 562 if ctx != nil { 563 req = req.WithContext(ctx) 564 } 565 res, err := r.client.Do(req) 566 if err != nil { 567 return nil, err 568 } 569 var values []LanguageProficiency 570 for { 571 if res.StatusCode != http.StatusOK { 572 b, _ := ioutil.ReadAll(res.Body) 573 res.Body.Close() 574 errRes := &ErrorResponse{Response: res} 575 err := jsonx.Unmarshal(b, errRes) 576 if err != nil { 577 return nil, fmt.Errorf("%s: %s", res.Status, string(b)) 578 } 579 return nil, errRes 580 } 581 var ( 582 paging Paging 583 value []LanguageProficiency 584 ) 585 err := jsonx.NewDecoder(res.Body).Decode(&paging) 586 res.Body.Close() 587 if err != nil { 588 return nil, err 589 } 590 err = jsonx.Unmarshal(paging.Value, &value) 591 if err != nil { 592 return nil, err 593 } 594 values = append(values, value...) 595 if n >= 0 { 596 n-- 597 } 598 if n == 0 || len(paging.NextLink) == 0 { 599 return values, nil 600 } 601 req, err = http.NewRequest("GET", paging.NextLink, nil) 602 if ctx != nil { 603 req = req.WithContext(ctx) 604 } 605 res, err = r.client.Do(req) 606 if err != nil { 607 return nil, err 608 } 609 } 610 } 611 612 // GetN performs GET request for LanguageProficiency collection, max N pages 613 func (r *ProfileLanguagesCollectionRequest) GetN(ctx context.Context, n int) ([]LanguageProficiency, error) { 614 var query string 615 if r.query != nil { 616 query = "?" + r.query.Encode() 617 } 618 return r.Paging(ctx, "GET", query, nil, n) 619 } 620 621 // Get performs GET request for LanguageProficiency collection 622 func (r *ProfileLanguagesCollectionRequest) Get(ctx context.Context) ([]LanguageProficiency, error) { 623 return r.GetN(ctx, 0) 624 } 625 626 // Add performs POST request for LanguageProficiency collection 627 func (r *ProfileLanguagesCollectionRequest) Add(ctx context.Context, reqObj *LanguageProficiency) (resObj *LanguageProficiency, err error) { 628 err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj) 629 return 630 } 631 632 // Names returns request builder for PersonName collection 633 func (b *ProfileRequestBuilder) Names() *ProfileNamesCollectionRequestBuilder { 634 bb := &ProfileNamesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 635 bb.baseURL += "/names" 636 return bb 637 } 638 639 // ProfileNamesCollectionRequestBuilder is request builder for PersonName collection 640 type ProfileNamesCollectionRequestBuilder struct{ BaseRequestBuilder } 641 642 // Request returns request for PersonName collection 643 func (b *ProfileNamesCollectionRequestBuilder) Request() *ProfileNamesCollectionRequest { 644 return &ProfileNamesCollectionRequest{ 645 BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client}, 646 } 647 } 648 649 // ID returns request builder for PersonName item 650 func (b *ProfileNamesCollectionRequestBuilder) ID(id string) *PersonNameRequestBuilder { 651 bb := &PersonNameRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 652 bb.baseURL += "/" + id 653 return bb 654 } 655 656 // ProfileNamesCollectionRequest is request for PersonName collection 657 type ProfileNamesCollectionRequest struct{ BaseRequest } 658 659 // Paging perfoms paging operation for PersonName collection 660 func (r *ProfileNamesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]PersonName, error) { 661 req, err := r.NewJSONRequest(method, path, obj) 662 if err != nil { 663 return nil, err 664 } 665 if ctx != nil { 666 req = req.WithContext(ctx) 667 } 668 res, err := r.client.Do(req) 669 if err != nil { 670 return nil, err 671 } 672 var values []PersonName 673 for { 674 if res.StatusCode != http.StatusOK { 675 b, _ := ioutil.ReadAll(res.Body) 676 res.Body.Close() 677 errRes := &ErrorResponse{Response: res} 678 err := jsonx.Unmarshal(b, errRes) 679 if err != nil { 680 return nil, fmt.Errorf("%s: %s", res.Status, string(b)) 681 } 682 return nil, errRes 683 } 684 var ( 685 paging Paging 686 value []PersonName 687 ) 688 err := jsonx.NewDecoder(res.Body).Decode(&paging) 689 res.Body.Close() 690 if err != nil { 691 return nil, err 692 } 693 err = jsonx.Unmarshal(paging.Value, &value) 694 if err != nil { 695 return nil, err 696 } 697 values = append(values, value...) 698 if n >= 0 { 699 n-- 700 } 701 if n == 0 || len(paging.NextLink) == 0 { 702 return values, nil 703 } 704 req, err = http.NewRequest("GET", paging.NextLink, nil) 705 if ctx != nil { 706 req = req.WithContext(ctx) 707 } 708 res, err = r.client.Do(req) 709 if err != nil { 710 return nil, err 711 } 712 } 713 } 714 715 // GetN performs GET request for PersonName collection, max N pages 716 func (r *ProfileNamesCollectionRequest) GetN(ctx context.Context, n int) ([]PersonName, error) { 717 var query string 718 if r.query != nil { 719 query = "?" + r.query.Encode() 720 } 721 return r.Paging(ctx, "GET", query, nil, n) 722 } 723 724 // Get performs GET request for PersonName collection 725 func (r *ProfileNamesCollectionRequest) Get(ctx context.Context) ([]PersonName, error) { 726 return r.GetN(ctx, 0) 727 } 728 729 // Add performs POST request for PersonName collection 730 func (r *ProfileNamesCollectionRequest) Add(ctx context.Context, reqObj *PersonName) (resObj *PersonName, err error) { 731 err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj) 732 return 733 } 734 735 // Phones returns request builder for ItemPhone collection 736 func (b *ProfileRequestBuilder) Phones() *ProfilePhonesCollectionRequestBuilder { 737 bb := &ProfilePhonesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 738 bb.baseURL += "/phones" 739 return bb 740 } 741 742 // ProfilePhonesCollectionRequestBuilder is request builder for ItemPhone collection 743 type ProfilePhonesCollectionRequestBuilder struct{ BaseRequestBuilder } 744 745 // Request returns request for ItemPhone collection 746 func (b *ProfilePhonesCollectionRequestBuilder) Request() *ProfilePhonesCollectionRequest { 747 return &ProfilePhonesCollectionRequest{ 748 BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client}, 749 } 750 } 751 752 // ID returns request builder for ItemPhone item 753 func (b *ProfilePhonesCollectionRequestBuilder) ID(id string) *ItemPhoneRequestBuilder { 754 bb := &ItemPhoneRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 755 bb.baseURL += "/" + id 756 return bb 757 } 758 759 // ProfilePhonesCollectionRequest is request for ItemPhone collection 760 type ProfilePhonesCollectionRequest struct{ BaseRequest } 761 762 // Paging perfoms paging operation for ItemPhone collection 763 func (r *ProfilePhonesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]ItemPhone, error) { 764 req, err := r.NewJSONRequest(method, path, obj) 765 if err != nil { 766 return nil, err 767 } 768 if ctx != nil { 769 req = req.WithContext(ctx) 770 } 771 res, err := r.client.Do(req) 772 if err != nil { 773 return nil, err 774 } 775 var values []ItemPhone 776 for { 777 if res.StatusCode != http.StatusOK { 778 b, _ := ioutil.ReadAll(res.Body) 779 res.Body.Close() 780 errRes := &ErrorResponse{Response: res} 781 err := jsonx.Unmarshal(b, errRes) 782 if err != nil { 783 return nil, fmt.Errorf("%s: %s", res.Status, string(b)) 784 } 785 return nil, errRes 786 } 787 var ( 788 paging Paging 789 value []ItemPhone 790 ) 791 err := jsonx.NewDecoder(res.Body).Decode(&paging) 792 res.Body.Close() 793 if err != nil { 794 return nil, err 795 } 796 err = jsonx.Unmarshal(paging.Value, &value) 797 if err != nil { 798 return nil, err 799 } 800 values = append(values, value...) 801 if n >= 0 { 802 n-- 803 } 804 if n == 0 || len(paging.NextLink) == 0 { 805 return values, nil 806 } 807 req, err = http.NewRequest("GET", paging.NextLink, nil) 808 if ctx != nil { 809 req = req.WithContext(ctx) 810 } 811 res, err = r.client.Do(req) 812 if err != nil { 813 return nil, err 814 } 815 } 816 } 817 818 // GetN performs GET request for ItemPhone collection, max N pages 819 func (r *ProfilePhonesCollectionRequest) GetN(ctx context.Context, n int) ([]ItemPhone, error) { 820 var query string 821 if r.query != nil { 822 query = "?" + r.query.Encode() 823 } 824 return r.Paging(ctx, "GET", query, nil, n) 825 } 826 827 // Get performs GET request for ItemPhone collection 828 func (r *ProfilePhonesCollectionRequest) Get(ctx context.Context) ([]ItemPhone, error) { 829 return r.GetN(ctx, 0) 830 } 831 832 // Add performs POST request for ItemPhone collection 833 func (r *ProfilePhonesCollectionRequest) Add(ctx context.Context, reqObj *ItemPhone) (resObj *ItemPhone, err error) { 834 err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj) 835 return 836 } 837 838 // Positions returns request builder for WorkPosition collection 839 func (b *ProfileRequestBuilder) Positions() *ProfilePositionsCollectionRequestBuilder { 840 bb := &ProfilePositionsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 841 bb.baseURL += "/positions" 842 return bb 843 } 844 845 // ProfilePositionsCollectionRequestBuilder is request builder for WorkPosition collection 846 type ProfilePositionsCollectionRequestBuilder struct{ BaseRequestBuilder } 847 848 // Request returns request for WorkPosition collection 849 func (b *ProfilePositionsCollectionRequestBuilder) Request() *ProfilePositionsCollectionRequest { 850 return &ProfilePositionsCollectionRequest{ 851 BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client}, 852 } 853 } 854 855 // ID returns request builder for WorkPosition item 856 func (b *ProfilePositionsCollectionRequestBuilder) ID(id string) *WorkPositionRequestBuilder { 857 bb := &WorkPositionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 858 bb.baseURL += "/" + id 859 return bb 860 } 861 862 // ProfilePositionsCollectionRequest is request for WorkPosition collection 863 type ProfilePositionsCollectionRequest struct{ BaseRequest } 864 865 // Paging perfoms paging operation for WorkPosition collection 866 func (r *ProfilePositionsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]WorkPosition, error) { 867 req, err := r.NewJSONRequest(method, path, obj) 868 if err != nil { 869 return nil, err 870 } 871 if ctx != nil { 872 req = req.WithContext(ctx) 873 } 874 res, err := r.client.Do(req) 875 if err != nil { 876 return nil, err 877 } 878 var values []WorkPosition 879 for { 880 if res.StatusCode != http.StatusOK { 881 b, _ := ioutil.ReadAll(res.Body) 882 res.Body.Close() 883 errRes := &ErrorResponse{Response: res} 884 err := jsonx.Unmarshal(b, errRes) 885 if err != nil { 886 return nil, fmt.Errorf("%s: %s", res.Status, string(b)) 887 } 888 return nil, errRes 889 } 890 var ( 891 paging Paging 892 value []WorkPosition 893 ) 894 err := jsonx.NewDecoder(res.Body).Decode(&paging) 895 res.Body.Close() 896 if err != nil { 897 return nil, err 898 } 899 err = jsonx.Unmarshal(paging.Value, &value) 900 if err != nil { 901 return nil, err 902 } 903 values = append(values, value...) 904 if n >= 0 { 905 n-- 906 } 907 if n == 0 || len(paging.NextLink) == 0 { 908 return values, nil 909 } 910 req, err = http.NewRequest("GET", paging.NextLink, nil) 911 if ctx != nil { 912 req = req.WithContext(ctx) 913 } 914 res, err = r.client.Do(req) 915 if err != nil { 916 return nil, err 917 } 918 } 919 } 920 921 // GetN performs GET request for WorkPosition collection, max N pages 922 func (r *ProfilePositionsCollectionRequest) GetN(ctx context.Context, n int) ([]WorkPosition, error) { 923 var query string 924 if r.query != nil { 925 query = "?" + r.query.Encode() 926 } 927 return r.Paging(ctx, "GET", query, nil, n) 928 } 929 930 // Get performs GET request for WorkPosition collection 931 func (r *ProfilePositionsCollectionRequest) Get(ctx context.Context) ([]WorkPosition, error) { 932 return r.GetN(ctx, 0) 933 } 934 935 // Add performs POST request for WorkPosition collection 936 func (r *ProfilePositionsCollectionRequest) Add(ctx context.Context, reqObj *WorkPosition) (resObj *WorkPosition, err error) { 937 err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj) 938 return 939 } 940 941 // Projects returns request builder for ProjectParticipation collection 942 func (b *ProfileRequestBuilder) Projects() *ProfileProjectsCollectionRequestBuilder { 943 bb := &ProfileProjectsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 944 bb.baseURL += "/projects" 945 return bb 946 } 947 948 // ProfileProjectsCollectionRequestBuilder is request builder for ProjectParticipation collection 949 type ProfileProjectsCollectionRequestBuilder struct{ BaseRequestBuilder } 950 951 // Request returns request for ProjectParticipation collection 952 func (b *ProfileProjectsCollectionRequestBuilder) Request() *ProfileProjectsCollectionRequest { 953 return &ProfileProjectsCollectionRequest{ 954 BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client}, 955 } 956 } 957 958 // ID returns request builder for ProjectParticipation item 959 func (b *ProfileProjectsCollectionRequestBuilder) ID(id string) *ProjectParticipationRequestBuilder { 960 bb := &ProjectParticipationRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 961 bb.baseURL += "/" + id 962 return bb 963 } 964 965 // ProfileProjectsCollectionRequest is request for ProjectParticipation collection 966 type ProfileProjectsCollectionRequest struct{ BaseRequest } 967 968 // Paging perfoms paging operation for ProjectParticipation collection 969 func (r *ProfileProjectsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]ProjectParticipation, error) { 970 req, err := r.NewJSONRequest(method, path, obj) 971 if err != nil { 972 return nil, err 973 } 974 if ctx != nil { 975 req = req.WithContext(ctx) 976 } 977 res, err := r.client.Do(req) 978 if err != nil { 979 return nil, err 980 } 981 var values []ProjectParticipation 982 for { 983 if res.StatusCode != http.StatusOK { 984 b, _ := ioutil.ReadAll(res.Body) 985 res.Body.Close() 986 errRes := &ErrorResponse{Response: res} 987 err := jsonx.Unmarshal(b, errRes) 988 if err != nil { 989 return nil, fmt.Errorf("%s: %s", res.Status, string(b)) 990 } 991 return nil, errRes 992 } 993 var ( 994 paging Paging 995 value []ProjectParticipation 996 ) 997 err := jsonx.NewDecoder(res.Body).Decode(&paging) 998 res.Body.Close() 999 if err != nil { 1000 return nil, err 1001 } 1002 err = jsonx.Unmarshal(paging.Value, &value) 1003 if err != nil { 1004 return nil, err 1005 } 1006 values = append(values, value...) 1007 if n >= 0 { 1008 n-- 1009 } 1010 if n == 0 || len(paging.NextLink) == 0 { 1011 return values, nil 1012 } 1013 req, err = http.NewRequest("GET", paging.NextLink, nil) 1014 if ctx != nil { 1015 req = req.WithContext(ctx) 1016 } 1017 res, err = r.client.Do(req) 1018 if err != nil { 1019 return nil, err 1020 } 1021 } 1022 } 1023 1024 // GetN performs GET request for ProjectParticipation collection, max N pages 1025 func (r *ProfileProjectsCollectionRequest) GetN(ctx context.Context, n int) ([]ProjectParticipation, error) { 1026 var query string 1027 if r.query != nil { 1028 query = "?" + r.query.Encode() 1029 } 1030 return r.Paging(ctx, "GET", query, nil, n) 1031 } 1032 1033 // Get performs GET request for ProjectParticipation collection 1034 func (r *ProfileProjectsCollectionRequest) Get(ctx context.Context) ([]ProjectParticipation, error) { 1035 return r.GetN(ctx, 0) 1036 } 1037 1038 // Add performs POST request for ProjectParticipation collection 1039 func (r *ProfileProjectsCollectionRequest) Add(ctx context.Context, reqObj *ProjectParticipation) (resObj *ProjectParticipation, err error) { 1040 err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj) 1041 return 1042 } 1043 1044 // Skills returns request builder for SkillProficiency collection 1045 func (b *ProfileRequestBuilder) Skills() *ProfileSkillsCollectionRequestBuilder { 1046 bb := &ProfileSkillsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 1047 bb.baseURL += "/skills" 1048 return bb 1049 } 1050 1051 // ProfileSkillsCollectionRequestBuilder is request builder for SkillProficiency collection 1052 type ProfileSkillsCollectionRequestBuilder struct{ BaseRequestBuilder } 1053 1054 // Request returns request for SkillProficiency collection 1055 func (b *ProfileSkillsCollectionRequestBuilder) Request() *ProfileSkillsCollectionRequest { 1056 return &ProfileSkillsCollectionRequest{ 1057 BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client}, 1058 } 1059 } 1060 1061 // ID returns request builder for SkillProficiency item 1062 func (b *ProfileSkillsCollectionRequestBuilder) ID(id string) *SkillProficiencyRequestBuilder { 1063 bb := &SkillProficiencyRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 1064 bb.baseURL += "/" + id 1065 return bb 1066 } 1067 1068 // ProfileSkillsCollectionRequest is request for SkillProficiency collection 1069 type ProfileSkillsCollectionRequest struct{ BaseRequest } 1070 1071 // Paging perfoms paging operation for SkillProficiency collection 1072 func (r *ProfileSkillsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]SkillProficiency, error) { 1073 req, err := r.NewJSONRequest(method, path, obj) 1074 if err != nil { 1075 return nil, err 1076 } 1077 if ctx != nil { 1078 req = req.WithContext(ctx) 1079 } 1080 res, err := r.client.Do(req) 1081 if err != nil { 1082 return nil, err 1083 } 1084 var values []SkillProficiency 1085 for { 1086 if res.StatusCode != http.StatusOK { 1087 b, _ := ioutil.ReadAll(res.Body) 1088 res.Body.Close() 1089 errRes := &ErrorResponse{Response: res} 1090 err := jsonx.Unmarshal(b, errRes) 1091 if err != nil { 1092 return nil, fmt.Errorf("%s: %s", res.Status, string(b)) 1093 } 1094 return nil, errRes 1095 } 1096 var ( 1097 paging Paging 1098 value []SkillProficiency 1099 ) 1100 err := jsonx.NewDecoder(res.Body).Decode(&paging) 1101 res.Body.Close() 1102 if err != nil { 1103 return nil, err 1104 } 1105 err = jsonx.Unmarshal(paging.Value, &value) 1106 if err != nil { 1107 return nil, err 1108 } 1109 values = append(values, value...) 1110 if n >= 0 { 1111 n-- 1112 } 1113 if n == 0 || len(paging.NextLink) == 0 { 1114 return values, nil 1115 } 1116 req, err = http.NewRequest("GET", paging.NextLink, nil) 1117 if ctx != nil { 1118 req = req.WithContext(ctx) 1119 } 1120 res, err = r.client.Do(req) 1121 if err != nil { 1122 return nil, err 1123 } 1124 } 1125 } 1126 1127 // GetN performs GET request for SkillProficiency collection, max N pages 1128 func (r *ProfileSkillsCollectionRequest) GetN(ctx context.Context, n int) ([]SkillProficiency, error) { 1129 var query string 1130 if r.query != nil { 1131 query = "?" + r.query.Encode() 1132 } 1133 return r.Paging(ctx, "GET", query, nil, n) 1134 } 1135 1136 // Get performs GET request for SkillProficiency collection 1137 func (r *ProfileSkillsCollectionRequest) Get(ctx context.Context) ([]SkillProficiency, error) { 1138 return r.GetN(ctx, 0) 1139 } 1140 1141 // Add performs POST request for SkillProficiency collection 1142 func (r *ProfileSkillsCollectionRequest) Add(ctx context.Context, reqObj *SkillProficiency) (resObj *SkillProficiency, err error) { 1143 err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj) 1144 return 1145 } 1146 1147 // WebAccounts returns request builder for WebAccount collection 1148 func (b *ProfileRequestBuilder) WebAccounts() *ProfileWebAccountsCollectionRequestBuilder { 1149 bb := &ProfileWebAccountsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 1150 bb.baseURL += "/webAccounts" 1151 return bb 1152 } 1153 1154 // ProfileWebAccountsCollectionRequestBuilder is request builder for WebAccount collection 1155 type ProfileWebAccountsCollectionRequestBuilder struct{ BaseRequestBuilder } 1156 1157 // Request returns request for WebAccount collection 1158 func (b *ProfileWebAccountsCollectionRequestBuilder) Request() *ProfileWebAccountsCollectionRequest { 1159 return &ProfileWebAccountsCollectionRequest{ 1160 BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client}, 1161 } 1162 } 1163 1164 // ID returns request builder for WebAccount item 1165 func (b *ProfileWebAccountsCollectionRequestBuilder) ID(id string) *WebAccountRequestBuilder { 1166 bb := &WebAccountRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 1167 bb.baseURL += "/" + id 1168 return bb 1169 } 1170 1171 // ProfileWebAccountsCollectionRequest is request for WebAccount collection 1172 type ProfileWebAccountsCollectionRequest struct{ BaseRequest } 1173 1174 // Paging perfoms paging operation for WebAccount collection 1175 func (r *ProfileWebAccountsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]WebAccount, error) { 1176 req, err := r.NewJSONRequest(method, path, obj) 1177 if err != nil { 1178 return nil, err 1179 } 1180 if ctx != nil { 1181 req = req.WithContext(ctx) 1182 } 1183 res, err := r.client.Do(req) 1184 if err != nil { 1185 return nil, err 1186 } 1187 var values []WebAccount 1188 for { 1189 if res.StatusCode != http.StatusOK { 1190 b, _ := ioutil.ReadAll(res.Body) 1191 res.Body.Close() 1192 errRes := &ErrorResponse{Response: res} 1193 err := jsonx.Unmarshal(b, errRes) 1194 if err != nil { 1195 return nil, fmt.Errorf("%s: %s", res.Status, string(b)) 1196 } 1197 return nil, errRes 1198 } 1199 var ( 1200 paging Paging 1201 value []WebAccount 1202 ) 1203 err := jsonx.NewDecoder(res.Body).Decode(&paging) 1204 res.Body.Close() 1205 if err != nil { 1206 return nil, err 1207 } 1208 err = jsonx.Unmarshal(paging.Value, &value) 1209 if err != nil { 1210 return nil, err 1211 } 1212 values = append(values, value...) 1213 if n >= 0 { 1214 n-- 1215 } 1216 if n == 0 || len(paging.NextLink) == 0 { 1217 return values, nil 1218 } 1219 req, err = http.NewRequest("GET", paging.NextLink, nil) 1220 if ctx != nil { 1221 req = req.WithContext(ctx) 1222 } 1223 res, err = r.client.Do(req) 1224 if err != nil { 1225 return nil, err 1226 } 1227 } 1228 } 1229 1230 // GetN performs GET request for WebAccount collection, max N pages 1231 func (r *ProfileWebAccountsCollectionRequest) GetN(ctx context.Context, n int) ([]WebAccount, error) { 1232 var query string 1233 if r.query != nil { 1234 query = "?" + r.query.Encode() 1235 } 1236 return r.Paging(ctx, "GET", query, nil, n) 1237 } 1238 1239 // Get performs GET request for WebAccount collection 1240 func (r *ProfileWebAccountsCollectionRequest) Get(ctx context.Context) ([]WebAccount, error) { 1241 return r.GetN(ctx, 0) 1242 } 1243 1244 // Add performs POST request for WebAccount collection 1245 func (r *ProfileWebAccountsCollectionRequest) Add(ctx context.Context, reqObj *WebAccount) (resObj *WebAccount, err error) { 1246 err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj) 1247 return 1248 } 1249 1250 // Websites returns request builder for PersonWebsite collection 1251 func (b *ProfileRequestBuilder) Websites() *ProfileWebsitesCollectionRequestBuilder { 1252 bb := &ProfileWebsitesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 1253 bb.baseURL += "/websites" 1254 return bb 1255 } 1256 1257 // ProfileWebsitesCollectionRequestBuilder is request builder for PersonWebsite collection 1258 type ProfileWebsitesCollectionRequestBuilder struct{ BaseRequestBuilder } 1259 1260 // Request returns request for PersonWebsite collection 1261 func (b *ProfileWebsitesCollectionRequestBuilder) Request() *ProfileWebsitesCollectionRequest { 1262 return &ProfileWebsitesCollectionRequest{ 1263 BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client}, 1264 } 1265 } 1266 1267 // ID returns request builder for PersonWebsite item 1268 func (b *ProfileWebsitesCollectionRequestBuilder) ID(id string) *PersonWebsiteRequestBuilder { 1269 bb := &PersonWebsiteRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} 1270 bb.baseURL += "/" + id 1271 return bb 1272 } 1273 1274 // ProfileWebsitesCollectionRequest is request for PersonWebsite collection 1275 type ProfileWebsitesCollectionRequest struct{ BaseRequest } 1276 1277 // Paging perfoms paging operation for PersonWebsite collection 1278 func (r *ProfileWebsitesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]PersonWebsite, error) { 1279 req, err := r.NewJSONRequest(method, path, obj) 1280 if err != nil { 1281 return nil, err 1282 } 1283 if ctx != nil { 1284 req = req.WithContext(ctx) 1285 } 1286 res, err := r.client.Do(req) 1287 if err != nil { 1288 return nil, err 1289 } 1290 var values []PersonWebsite 1291 for { 1292 if res.StatusCode != http.StatusOK { 1293 b, _ := ioutil.ReadAll(res.Body) 1294 res.Body.Close() 1295 errRes := &ErrorResponse{Response: res} 1296 err := jsonx.Unmarshal(b, errRes) 1297 if err != nil { 1298 return nil, fmt.Errorf("%s: %s", res.Status, string(b)) 1299 } 1300 return nil, errRes 1301 } 1302 var ( 1303 paging Paging 1304 value []PersonWebsite 1305 ) 1306 err := jsonx.NewDecoder(res.Body).Decode(&paging) 1307 res.Body.Close() 1308 if err != nil { 1309 return nil, err 1310 } 1311 err = jsonx.Unmarshal(paging.Value, &value) 1312 if err != nil { 1313 return nil, err 1314 } 1315 values = append(values, value...) 1316 if n >= 0 { 1317 n-- 1318 } 1319 if n == 0 || len(paging.NextLink) == 0 { 1320 return values, nil 1321 } 1322 req, err = http.NewRequest("GET", paging.NextLink, nil) 1323 if ctx != nil { 1324 req = req.WithContext(ctx) 1325 } 1326 res, err = r.client.Do(req) 1327 if err != nil { 1328 return nil, err 1329 } 1330 } 1331 } 1332 1333 // GetN performs GET request for PersonWebsite collection, max N pages 1334 func (r *ProfileWebsitesCollectionRequest) GetN(ctx context.Context, n int) ([]PersonWebsite, error) { 1335 var query string 1336 if r.query != nil { 1337 query = "?" + r.query.Encode() 1338 } 1339 return r.Paging(ctx, "GET", query, nil, n) 1340 } 1341 1342 // Get performs GET request for PersonWebsite collection 1343 func (r *ProfileWebsitesCollectionRequest) Get(ctx context.Context) ([]PersonWebsite, error) { 1344 return r.GetN(ctx, 0) 1345 } 1346 1347 // Add performs POST request for PersonWebsite collection 1348 func (r *ProfileWebsitesCollectionRequest) Add(ctx context.Context, reqObj *PersonWebsite) (resObj *PersonWebsite, err error) { 1349 err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj) 1350 return 1351 }