Bump msgraph deps to 1.0.0 (#3345)

Bumps ms graph and all dependent libs to 1.0.0

*Still can't drop betasdk as `models.SitePageable` is still not available.*

---

#### Does this PR need a docs update or release note?

- [ ]  Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [x]  No

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [x] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

#### Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* Closes https://github.com/alcionai/corso/pull/3327
* Closes https://github.com/alcionai/corso/pull/3326
* Closes https://github.com/alcionai/corso/pull/3324
* Closes https://github.com/alcionai/corso/pull/3323
* Closes https://github.com/alcionai/corso/pull/3322
* Closes https://github.com/alcionai/corso/pull/3321
* Closes https://github.com/alcionai/corso/pull/3320
* Closes https://github.com/alcionai/corso/issues/3354

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
This commit is contained in:
Abin Simon 2023-05-16 23:14:16 +05:30 committed by GitHub
parent 6febc3ce5b
commit 67e055360d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
34 changed files with 439 additions and 275 deletions

View File

@ -233,14 +233,14 @@ func generateAndRestoreDriveItems(
switch service { switch service {
case path.SharePointService: case path.SharePointService:
d, err := gc.Service.Client().SitesById(resourceOwner).Drive().Get(ctx, nil) d, err := gc.Service.Client().Sites().BySiteId(resourceOwner).Drive().Get(ctx, nil)
if err != nil { if err != nil {
return nil, clues.Wrap(err, "getting site's default drive") return nil, clues.Wrap(err, "getting site's default drive")
} }
driveID = ptr.Val(d.GetId()) driveID = ptr.Val(d.GetId())
default: default:
d, err := gc.Service.Client().UsersById(resourceOwner).Drive().Get(ctx, nil) d, err := gc.Service.Client().Users().ByUserId(resourceOwner).Drive().Get(ctx, nil)
if err != nil { if err != nil {
return nil, clues.Wrap(err, "getting user's default drive") return nil, clues.Wrap(err, "getting user's default drive")
} }

View File

@ -109,7 +109,7 @@ func checkEmailRestoration(
restoreFolder models.MailFolderable restoreFolder models.MailFolderable
itemCount = make(map[string]int32) itemCount = make(map[string]int32)
restoreItemCount = make(map[string]int32) restoreItemCount = make(map[string]int32)
builder = client.UsersById(testUser).MailFolders() builder = client.Users().ByUserId(testUser).MailFolders()
) )
for { for {
@ -152,8 +152,10 @@ func checkEmailRestoration(
"restore_folder_name", folderName) "restore_folder_name", folderName)
childFolder, err := client. childFolder, err := client.
UsersById(testUser). Users().
MailFoldersById(folderID). ByUserId(testUser).
MailFolders().
ByMailFolderId(folderID).
ChildFolders(). ChildFolders().
Get(ctx, nil) Get(ctx, nil)
if err != nil { if err != nil {
@ -213,8 +215,10 @@ func getAllMailSubFolders(
ctx = clues.Add(ctx, "parent_folder_id", folderID) ctx = clues.Add(ctx, "parent_folder_id", folderID)
childFolder, err := client. childFolder, err := client.
UsersById(testUser). Users().
MailFoldersById(folderID). ByUserId(testUser).
MailFolders().
ByMailFolderId(folderID).
ChildFolders(). ChildFolders().
Get(ctx, options) Get(ctx, options)
if err != nil { if err != nil {
@ -263,8 +267,10 @@ func checkAllSubFolder(
) )
childFolder, err := client. childFolder, err := client.
UsersById(testUser). Users().
MailFoldersById(folderID). ByUserId(testUser).
MailFolders().
ByMailFolderId(folderID).
ChildFolders(). ChildFolders().
Get(ctx, options) Get(ctx, options)
if err != nil { if err != nil {
@ -303,7 +309,8 @@ func checkOneDriveRestoration(
startTime time.Time, startTime time.Time,
) { ) {
drive, err := client. drive, err := client.
UsersById(userID). Users().
ByUserId(userID).
Drive(). Drive().
Get(ctx, nil) Get(ctx, nil)
if err != nil { if err != nil {
@ -333,7 +340,8 @@ func checkSharePointRestoration(
startTime time.Time, startTime time.Time,
) { ) {
drive, err := client. drive, err := client.
SitesById(siteID). Sites().
BySiteId(siteID).
Drive(). Drive().
Get(ctx, nil) Get(ctx, nil)
if err != nil { if err != nil {
@ -381,8 +389,10 @@ func checkDriveRestoration(
ctx = clues.Add(ctx, "drive_id", driveID, "drive_name", driveName) ctx = clues.Add(ctx, "drive_id", driveID, "drive_name", driveName)
response, err := client. response, err := client.
DrivesById(driveID). Drives().
Root(). ByDriveId(driveID).
Items().
ByDriveItemId("root").
Children(). Children().
Get(ctx, nil) Get(ctx, nil)
if err != nil { if err != nil {
@ -521,7 +531,7 @@ func getOneDriveChildFolder(
folderPermission map[string][]permissionInfo, folderPermission map[string][]permissionInfo,
startTime time.Time, startTime time.Time,
) { ) {
response, err := client.DrivesById(driveID).ItemsById(itemID).Children().Get(ctx, nil) response, err := client.Drives().ByDriveId(driveID).Items().ByDriveItemId(itemID).Children().Get(ctx, nil)
if err != nil { if err != nil {
fatal(ctx, "getting child folder", err) fatal(ctx, "getting child folder", err)
} }
@ -569,8 +579,10 @@ func getRestoredDrive(
startTime time.Time, startTime time.Time,
) { ) {
restored, err := client. restored, err := client.
DrivesById(driveID). Drives().
ItemsById(restoreFolderID). ByDriveId(driveID).
Items().
ByDriveItemId(restoreFolderID).
Children(). Children().
Get(ctx, nil) Get(ctx, nil)
if err != nil { if err != nil {
@ -610,8 +622,10 @@ func permissionIn(
pi := []permissionInfo{} pi := []permissionInfo{}
pcr, err := client. pcr, err := client.
DrivesById(driveID). Drives().
ItemsById(itemID). ByDriveId(driveID).
Items().
ByDriveItemId(itemID).
Permissions(). Permissions().
Get(ctx, nil) Get(ctx, nil)
if err != nil { if err != nil {

View File

@ -14,13 +14,13 @@ require (
github.com/google/uuid v1.3.0 github.com/google/uuid v1.3.0
github.com/h2non/gock v1.2.0 github.com/h2non/gock v1.2.0
github.com/kopia/kopia v0.12.2-0.20230327171220-747baeebdab1 github.com/kopia/kopia v0.12.2-0.20230327171220-747baeebdab1
github.com/microsoft/kiota-abstractions-go v0.18.0 github.com/microsoft/kiota-abstractions-go v1.0.0
github.com/microsoft/kiota-authentication-azure-go v0.6.0 github.com/microsoft/kiota-authentication-azure-go v1.0.0
github.com/microsoft/kiota-http-go v0.16.1 github.com/microsoft/kiota-http-go v1.0.0
github.com/microsoft/kiota-serialization-form-go v0.8.2 github.com/microsoft/kiota-serialization-form-go v1.0.0
github.com/microsoft/kiota-serialization-json-go v0.8.2 github.com/microsoft/kiota-serialization-json-go v1.0.0
github.com/microsoftgraph/msgraph-sdk-go v0.53.0 github.com/microsoftgraph/msgraph-sdk-go v1.1.0
github.com/microsoftgraph/msgraph-sdk-go-core v0.33.0 github.com/microsoftgraph/msgraph-sdk-go-core v1.0.0
github.com/pkg/errors v0.9.1 github.com/pkg/errors v0.9.1
github.com/rudderlabs/analytics-go v3.3.3+incompatible github.com/rudderlabs/analytics-go v3.3.3+incompatible
github.com/spatialcurrent/go-lazy v0.0.0-20211115014721-47315cc003d1 github.com/spatialcurrent/go-lazy v0.0.0-20211115014721-47315cc003d1
@ -60,8 +60,8 @@ require (
) )
require ( require (
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.3.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.6.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 // indirect
github.com/AzureAD/microsoft-authentication-library-for-go v0.7.0 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v0.7.0 // indirect
github.com/beorn7/perks v1.0.1 // indirect github.com/beorn7/perks v1.0.1 // indirect
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 // indirect github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 // indirect
@ -71,7 +71,7 @@ require (
github.com/davecgh/go-spew v1.1.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect
github.com/dustin/go-humanize v1.0.1 github.com/dustin/go-humanize v1.0.1
github.com/edsrzf/mmap-go v1.1.0 // indirect github.com/edsrzf/mmap-go v1.1.0 // indirect
github.com/go-logr/logr v1.2.3 // indirect github.com/go-logr/logr v1.2.4 // indirect
github.com/go-logr/stdr v1.2.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect
github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect
github.com/golang/protobuf v1.5.3 // indirect github.com/golang/protobuf v1.5.3 // indirect
@ -89,7 +89,7 @@ require (
github.com/mattn/go-runewidth v0.0.14 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect
github.com/microsoft/kiota-serialization-text-go v0.7.0 github.com/microsoft/kiota-serialization-text-go v1.0.0
github.com/minio/md5-simd v1.1.2 // indirect github.com/minio/md5-simd v1.1.2 // indirect
github.com/minio/minio-go/v7 v7.0.52 // indirect github.com/minio/minio-go/v7 v7.0.52 // indirect
github.com/minio/sha256-simd v1.0.0 // indirect github.com/minio/sha256-simd v1.0.0 // indirect
@ -112,8 +112,8 @@ require (
github.com/xtgo/uuid v0.0.0-20140804021211-a0b114877d4c // indirect github.com/xtgo/uuid v0.0.0-20140804021211-a0b114877d4c // indirect
github.com/yosida95/uritemplate/v3 v3.0.2 // indirect github.com/yosida95/uritemplate/v3 v3.0.2 // indirect
github.com/zeebo/blake3 v0.2.3 // indirect github.com/zeebo/blake3 v0.2.3 // indirect
go.opentelemetry.io/otel v1.14.0 // indirect go.opentelemetry.io/otel v1.15.1 // indirect
go.opentelemetry.io/otel/trace v1.14.0 // indirect go.opentelemetry.io/otel/trace v1.15.1 // indirect
go.uber.org/atomic v1.10.0 // indirect go.uber.org/atomic v1.10.0 // indirect
go.uber.org/multierr v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect
golang.org/x/crypto v0.8.0 // indirect golang.org/x/crypto v0.8.0 // indirect

View File

@ -38,10 +38,16 @@ cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3f
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.3.0 h1:VuHAcMq8pU1IWNT/m5yRaGqbK0BiQKHT8X4DTp9CHdI= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.3.0 h1:VuHAcMq8pU1IWNT/m5yRaGqbK0BiQKHT8X4DTp9CHdI=
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.3.0/go.mod h1:tZoQYdDZNOiIjdSn0dVWVfl0NEPGOJqVLzSrcFk4Is0= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.3.0/go.mod h1:tZoQYdDZNOiIjdSn0dVWVfl0NEPGOJqVLzSrcFk4Is0=
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.5.0 h1:xGLAFFd9D3iLGxYiUGPdITSzsFmU1K8VtfuUHWAoN7M=
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.5.0/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q=
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.6.0 h1:8kDqDngH+DmVBiCtIjCFTGa7MBnsIOkF9IccInFEbjk=
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.6.0/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q=
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.0 h1:t/W5MYAuQy81cvM8VUNfRLzhtKpXhVUAN7Cd7KVbTyc= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.0 h1:t/W5MYAuQy81cvM8VUNfRLzhtKpXhVUAN7Cd7KVbTyc=
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.0/go.mod h1:NBanQUfSWiWn3QEpWDTCU0IjBECKOYvl2R8xdRtMtiM= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.0/go.mod h1:NBanQUfSWiWn3QEpWDTCU0IjBECKOYvl2R8xdRtMtiM=
github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2 h1:+5VZ72z0Qan5Bog5C+ZkgSqUbeVUd9wgtHOrIKuc5b8= github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2 h1:+5VZ72z0Qan5Bog5C+ZkgSqUbeVUd9wgtHOrIKuc5b8=
github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w=
github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 h1:sXr+ck84g/ZlZUOZiNELInmMgOsuGwdjjVkEIde0OtY=
github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0/go.mod h1:okt5dMMTOFjX/aovMlrjvvXoPMBVSPzk9185BT0+eZM=
github.com/AzureAD/microsoft-authentication-library-for-go v0.7.0 h1:VgSJlZH5u0k2qxSpqyghcFQKmvYckj46uymKK5XzkBM= github.com/AzureAD/microsoft-authentication-library-for-go v0.7.0 h1:VgSJlZH5u0k2qxSpqyghcFQKmvYckj46uymKK5XzkBM=
github.com/AzureAD/microsoft-authentication-library-for-go v0.7.0/go.mod h1:BDJ5qMFKx9DugEg3+uQSDCdbYPr5s9vBTrL9P8TpqOU= github.com/AzureAD/microsoft-authentication-library-for-go v0.7.0/go.mod h1:BDJ5qMFKx9DugEg3+uQSDCdbYPr5s9vBTrL9P8TpqOU=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
@ -126,6 +132,8 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0=
github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ=
github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
@ -275,20 +283,38 @@ github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQ
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
github.com/microsoft/kiota-abstractions-go v0.18.0 h1:H1kQE5hAq/7Q8gENPJ1Y7DuvG9QqKCpglN8D7TJi9qY= github.com/microsoft/kiota-abstractions-go v0.18.0 h1:H1kQE5hAq/7Q8gENPJ1Y7DuvG9QqKCpglN8D7TJi9qY=
github.com/microsoft/kiota-abstractions-go v0.18.0/go.mod h1:0lbPErVO6Rj3HHpntNYW/OFmHhJJ1ewPdsi1xPxYIMc= github.com/microsoft/kiota-abstractions-go v0.18.0/go.mod h1:0lbPErVO6Rj3HHpntNYW/OFmHhJJ1ewPdsi1xPxYIMc=
github.com/microsoft/kiota-abstractions-go v1.0.0 h1:teQS3yOmcTyps+O48AD17LI8TR1B3wCEwGFcwC6K75c=
github.com/microsoft/kiota-abstractions-go v1.0.0/go.mod h1:2yaRQnx2KU7UaenYSApiTT4pf7fFkPV0B71Rm2uYynQ=
github.com/microsoft/kiota-authentication-azure-go v0.6.0 h1:Il9bLO34J6D8DY89xYAXoGh9muvlphayqG4eihyT6B8= github.com/microsoft/kiota-authentication-azure-go v0.6.0 h1:Il9bLO34J6D8DY89xYAXoGh9muvlphayqG4eihyT6B8=
github.com/microsoft/kiota-authentication-azure-go v0.6.0/go.mod h1:EJCHiLWLXW1/mSgX7lYReAhVO37MzRT5Xi2mcPTwCRQ= github.com/microsoft/kiota-authentication-azure-go v0.6.0/go.mod h1:EJCHiLWLXW1/mSgX7lYReAhVO37MzRT5Xi2mcPTwCRQ=
github.com/microsoft/kiota-authentication-azure-go v1.0.0 h1:29FNZZ/4nnCOwFcGWlB/sxPvWz487HA2bXH8jR5k2Rk=
github.com/microsoft/kiota-authentication-azure-go v1.0.0/go.mod h1:rnx3PRlkGdXDcA/0lZQTbBwyYGmc+3POt7HpE/e4jGw=
github.com/microsoft/kiota-http-go v0.16.1 h1:5SZbSwHs14Xve5VMQHHz00lwL/kEg3H9rgESAUrXnvw= github.com/microsoft/kiota-http-go v0.16.1 h1:5SZbSwHs14Xve5VMQHHz00lwL/kEg3H9rgESAUrXnvw=
github.com/microsoft/kiota-http-go v0.16.1/go.mod h1:pKSaeSaBwh3Zadbnzw3kALEZbCZA1gq7A5PuxwVd/aU= github.com/microsoft/kiota-http-go v0.16.1/go.mod h1:pKSaeSaBwh3Zadbnzw3kALEZbCZA1gq7A5PuxwVd/aU=
github.com/microsoft/kiota-http-go v1.0.0 h1:F1hd6gMlLeEgH2CkRB7z13ow7LxMKMWEmms/t0VfS+k=
github.com/microsoft/kiota-http-go v1.0.0/go.mod h1:eujxJliqodotsYepIc6ihhK+vXMMt5Q8YiSNL7+7M7U=
github.com/microsoft/kiota-serialization-form-go v0.8.2 h1:qrkJGBObZo0NjJwwbT3lUySjaLKqjz+r4TQGQTX/C/c= github.com/microsoft/kiota-serialization-form-go v0.8.2 h1:qrkJGBObZo0NjJwwbT3lUySjaLKqjz+r4TQGQTX/C/c=
github.com/microsoft/kiota-serialization-form-go v0.8.2/go.mod h1:FQqYzIrGX6KUoDOlg+DhDWoGaZoB8AicBYGOsBq0Dw4= github.com/microsoft/kiota-serialization-form-go v0.8.2/go.mod h1:FQqYzIrGX6KUoDOlg+DhDWoGaZoB8AicBYGOsBq0Dw4=
github.com/microsoft/kiota-serialization-form-go v1.0.0 h1:UNdrkMnLFqUCccQZerKjblsyVgifS11b3WCx+eFEsAI=
github.com/microsoft/kiota-serialization-form-go v1.0.0/go.mod h1:h4mQOO6KVTNciMF6azi1J9QB19ujSw3ULKcSNyXXOMA=
github.com/microsoft/kiota-serialization-json-go v0.8.2 h1:vLKZAOiMsaUxq36RDo3S/FfQbW2VQCdAIu4DS7+Qhrk= github.com/microsoft/kiota-serialization-json-go v0.8.2 h1:vLKZAOiMsaUxq36RDo3S/FfQbW2VQCdAIu4DS7+Qhrk=
github.com/microsoft/kiota-serialization-json-go v0.8.2/go.mod h1:gGcLNSdIdOZ4la2qztA0vaCq/LtlA53gpP+ur8n/+oA= github.com/microsoft/kiota-serialization-json-go v0.8.2/go.mod h1:gGcLNSdIdOZ4la2qztA0vaCq/LtlA53gpP+ur8n/+oA=
github.com/microsoft/kiota-serialization-json-go v1.0.0 h1:snT+SwS/R4CMjkmj7mjCHrmib2nKWqGvUWaedgliMbI=
github.com/microsoft/kiota-serialization-json-go v1.0.0/go.mod h1:psfgIfqWm/9P1JAdl2cxHHIg9SdEtYHOetfDLIQ5/dw=
github.com/microsoft/kiota-serialization-text-go v0.7.0 h1:uayeq8fpDcZgL0zDyLkYZsH6zNnEXKgp+bRWfR5LcxA= github.com/microsoft/kiota-serialization-text-go v0.7.0 h1:uayeq8fpDcZgL0zDyLkYZsH6zNnEXKgp+bRWfR5LcxA=
github.com/microsoft/kiota-serialization-text-go v0.7.0/go.mod h1:2su1PTllHCMNkHugmvpYad+AKBXUUGoiNP3xOAJUL7w= github.com/microsoft/kiota-serialization-text-go v0.7.0/go.mod h1:2su1PTllHCMNkHugmvpYad+AKBXUUGoiNP3xOAJUL7w=
github.com/microsoft/kiota-serialization-text-go v1.0.0 h1:XOaRhAXy+g8ZVpcq7x7a0jlETWnWrEum0RhmbYrTFnA=
github.com/microsoft/kiota-serialization-text-go v1.0.0/go.mod h1:sM1/C6ecnQ7IquQOGUrUldaO5wj+9+v7G2W3sQ3fy6M=
github.com/microsoftgraph/msgraph-sdk-go v0.53.0 h1:HpQd1Nvr8yQNeqhDuiVSbqn1fkHsFbRFDmnuhhXJXOQ= github.com/microsoftgraph/msgraph-sdk-go v0.53.0 h1:HpQd1Nvr8yQNeqhDuiVSbqn1fkHsFbRFDmnuhhXJXOQ=
github.com/microsoftgraph/msgraph-sdk-go v0.53.0/go.mod h1:BZLyon4n4T4EuLIAlX+kJ5JgneFTXVQDah1AJuq3FRY= github.com/microsoftgraph/msgraph-sdk-go v0.53.0/go.mod h1:BZLyon4n4T4EuLIAlX+kJ5JgneFTXVQDah1AJuq3FRY=
github.com/microsoftgraph/msgraph-sdk-go v1.0.0 h1:dGh406Loi5CoQ1VsoBkbi+mlozu58eT65YzoYsWX3Sk=
github.com/microsoftgraph/msgraph-sdk-go v1.0.0/go.mod h1:GvurB1XYl22Ralx3wlQZUTOwPnZ55RoTfbRNIStgj94=
github.com/microsoftgraph/msgraph-sdk-go v1.1.0 h1:NtFsFVIt8lpXcTlRbLG1WuCOTzltzS5j+U8Fecqdnr4=
github.com/microsoftgraph/msgraph-sdk-go v1.1.0/go.mod h1:NIk9kSn7lQ5Hnhhn3FM4NrJWz54JfDHD0JvhJZky27g=
github.com/microsoftgraph/msgraph-sdk-go-core v0.33.0 h1:cDL3ov/IZ2ZarUJdGGPsdR+46ALdd3CRAiDBIylLCoA= github.com/microsoftgraph/msgraph-sdk-go-core v0.33.0 h1:cDL3ov/IZ2ZarUJdGGPsdR+46ALdd3CRAiDBIylLCoA=
github.com/microsoftgraph/msgraph-sdk-go-core v0.33.0/go.mod h1:d0mU3PQAWnN/C4CwPJEZz2QhesrnR5UDnqRu2ODWPkI= github.com/microsoftgraph/msgraph-sdk-go-core v0.33.0/go.mod h1:d0mU3PQAWnN/C4CwPJEZz2QhesrnR5UDnqRu2ODWPkI=
github.com/microsoftgraph/msgraph-sdk-go-core v1.0.0 h1:7NWTfyXvOjoizW7PmxNp3+8wCKPgpODs/D1cUZ3fkAY=
github.com/microsoftgraph/msgraph-sdk-go-core v1.0.0/go.mod h1:tQb4q3YMIj2dWhhXhQSJ4ELpol931ANKzHSYK5kX1qE=
github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34=
github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM=
github.com/minio/minio-go/v7 v7.0.52 h1:8XhG36F6oKQUDDSuz6dY3rioMzovKjW40W6ANuN0Dps= github.com/minio/minio-go/v7 v7.0.52 h1:8XhG36F6oKQUDDSuz6dY3rioMzovKjW40W6ANuN0Dps=
@ -433,8 +459,12 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM= go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM=
go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU= go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU=
go.opentelemetry.io/otel v1.15.1 h1:3Iwq3lfRByPaws0f6bU3naAqOR1n5IeDWd9390kWHa8=
go.opentelemetry.io/otel v1.15.1/go.mod h1:mHHGEHVDLal6YrKMmk9LqC4a3sF5g+fHfrttQIB1NTc=
go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M= go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M=
go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8= go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8=
go.opentelemetry.io/otel/trace v1.15.1 h1:uXLo6iHJEzDfrNC0L0mNjItIp06SyaBQxu5t3xMlngY=
go.opentelemetry.io/otel/trace v1.15.1/go.mod h1:IWdQG/5N1x7f6YUlmdLeJvH9yxtuJAfc4VW5Agv9r/8=
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI=

View File

@ -45,7 +45,7 @@ func (c Contacts) CreateContactFolder(
temp := folderName temp := folderName
requestBody.SetDisplayName(&temp) requestBody.SetDisplayName(&temp)
mdl, err := c.Stable.Client().UsersById(user).ContactFolders().Post(ctx, requestBody, nil) mdl, err := c.Stable.Client().Users().ByUserId(user).ContactFolders().Post(ctx, requestBody, nil)
if err != nil { if err != nil {
return nil, graph.Wrap(ctx, err, "creating contact folder") return nil, graph.Wrap(ctx, err, "creating contact folder")
} }
@ -65,7 +65,7 @@ func (c Contacts) DeleteContainer(
return graph.Stack(ctx, err) return graph.Stack(ctx, err)
} }
err = srv.Client().UsersById(user).ContactFoldersById(folderID).Delete(ctx, nil) err = srv.Client().Users().ByUserId(user).ContactFolders().ByContactFolderId(folderID).Delete(ctx, nil)
if err != nil { if err != nil {
return graph.Stack(ctx, err) return graph.Stack(ctx, err)
} }
@ -84,7 +84,7 @@ func (c Contacts) GetItem(
Headers: buildPreferHeaders(false, immutableIDs), Headers: buildPreferHeaders(false, immutableIDs),
} }
cont, err := c.Stable.Client().UsersById(user).ContactsById(itemID).Get(ctx, options) cont, err := c.Stable.Client().Users().ByUserId(user).Contacts().ByContactId(itemID).Get(ctx, options)
if err != nil { if err != nil {
return nil, nil, graph.Stack(ctx, err) return nil, nil, graph.Stack(ctx, err)
} }
@ -101,7 +101,7 @@ func (c Contacts) GetContainerByID(
return nil, graph.Wrap(ctx, err, "setting contact folder options") return nil, graph.Wrap(ctx, err, "setting contact folder options")
} }
resp, err := c.Stable.Client().UsersById(userID).ContactFoldersById(dirID).Get(ctx, ofcf) resp, err := c.Stable.Client().Users().ByUserId(userID).ContactFolders().ByContactFolderId(dirID).Get(ctx, ofcf)
if err != nil { if err != nil {
return nil, graph.Stack(ctx, err) return nil, graph.Stack(ctx, err)
} }
@ -134,8 +134,10 @@ func (c Contacts) EnumerateContainers(
el := errs.Local() el := errs.Local()
builder := service.Client(). builder := service.Client().
UsersById(userID). Users().
ContactFoldersById(baseDirID). ByUserId(userID).
ContactFolders().
ByContactFolderId(baseDirID).
ChildFolders() ChildFolders()
for { for {
@ -217,7 +219,7 @@ func NewContactPager(
return &contactPager{}, err return &contactPager{}, err
} }
builder := gs.Client().UsersById(user).ContactFoldersById(directoryID).Contacts() builder := gs.Client().Users().ByUserId(user).ContactFolders().ByContactFolderId(directoryID).Contacts()
return &contactPager{gs, builder, options}, nil return &contactPager{gs, builder, options}, nil
} }
@ -263,7 +265,7 @@ func getContactDeltaBuilder(
directoryID string, directoryID string,
options *users.ItemContactFoldersItemContactsDeltaRequestBuilderGetRequestConfiguration, options *users.ItemContactFoldersItemContactsDeltaRequestBuilderGetRequestConfiguration,
) *users.ItemContactFoldersItemContactsDeltaRequestBuilder { ) *users.ItemContactFoldersItemContactsDeltaRequestBuilder {
builder := gs.Client().UsersById(user).ContactFoldersById(directoryID).Contacts().Delta() builder := gs.Client().Users().ByUserId(user).ContactFolders().ByContactFolderId(directoryID).Contacts().Delta()
return builder return builder
} }

View File

@ -46,7 +46,7 @@ func (c Events) CreateCalendar(
requestbody := models.NewCalendar() requestbody := models.NewCalendar()
requestbody.SetName(&calendarName) requestbody.SetName(&calendarName)
mdl, err := c.Stable.Client().UsersById(user).Calendars().Post(ctx, requestbody, nil) mdl, err := c.Stable.Client().Users().ByUserId(user).Calendars().Post(ctx, requestbody, nil)
if err != nil { if err != nil {
return nil, graph.Wrap(ctx, err, "creating calendar") return nil, graph.Wrap(ctx, err, "creating calendar")
} }
@ -67,7 +67,7 @@ func (c Events) DeleteContainer(
return graph.Stack(ctx, err) return graph.Stack(ctx, err)
} }
err = srv.Client().UsersById(user).CalendarsById(calendarID).Delete(ctx, nil) err = srv.Client().Users().ByUserId(user).Calendars().ByCalendarId(calendarID).Delete(ctx, nil)
if err != nil { if err != nil {
return graph.Stack(ctx, err) return graph.Stack(ctx, err)
} }
@ -89,7 +89,7 @@ func (c Events) GetContainerByID(
return nil, graph.Wrap(ctx, err, "setting event calendar options") return nil, graph.Wrap(ctx, err, "setting event calendar options")
} }
cal, err := service.Client().UsersById(userID).CalendarsById(containerID).Get(ctx, ofc) cal, err := service.Client().Users().ByUserId(userID).Calendars().ByCalendarId(containerID).Get(ctx, ofc)
if err != nil { if err != nil {
return nil, graph.Stack(ctx, err).WithClues(ctx) return nil, graph.Stack(ctx, err).WithClues(ctx)
} }
@ -111,7 +111,7 @@ func (c Events) GetContainerByName(
ctx = clues.Add(ctx, "calendar_name", name) ctx = clues.Add(ctx, "calendar_name", name)
resp, err := c.Stable.Client().UsersById(userID).Calendars().Get(ctx, options) resp, err := c.Stable.Client().Users().ByUserId(userID).Calendars().Get(ctx, options)
if err != nil { if err != nil {
return nil, graph.Stack(ctx, err).WithClues(ctx) return nil, graph.Stack(ctx, err).WithClues(ctx)
} }
@ -152,7 +152,7 @@ func (c Events) GetItem(
} }
) )
event, err = c.Stable.Client().UsersById(user).EventsById(itemID).Get(ctx, itemOpts) event, err = c.Stable.Client().Users().ByUserId(user).Events().ByEventId(itemID).Get(ctx, itemOpts)
if err != nil { if err != nil {
return nil, nil, graph.Stack(ctx, err) return nil, nil, graph.Stack(ctx, err)
} }
@ -167,8 +167,10 @@ func (c Events) GetItem(
attached, err := c.LargeItem. attached, err := c.LargeItem.
Client(). Client().
UsersById(user). Users().
EventsById(itemID). ByUserId(user).
Events().
ByEventId(itemID).
Attachments(). Attachments().
Get(ctx, options) Get(ctx, options)
if err != nil { if err != nil {
@ -203,7 +205,7 @@ func (c Events) EnumerateContainers(
} }
el := errs.Local() el := errs.Local()
builder := service.Client().UsersById(userID).Calendars() builder := service.Client().Users().ByUserId(userID).Calendars()
for { for {
if el.Failure() != nil { if el.Failure() != nil {
@ -278,7 +280,7 @@ func NewEventPager(
Headers: buildPreferHeaders(true, immutableIDs), Headers: buildPreferHeaders(true, immutableIDs),
} }
builder := gs.Client().UsersById(user).CalendarsById(calendarID).Events() builder := gs.Client().Users().ByUserId(user).Calendars().ByCalendarId(calendarID).Events()
return &eventPager{gs, builder, options}, nil return &eventPager{gs, builder, options}, nil
} }

View File

@ -51,7 +51,7 @@ func (c Mail) CreateMailFolder(
requestBody.SetDisplayName(&folder) requestBody.SetDisplayName(&folder)
requestBody.SetIsHidden(&isHidden) requestBody.SetIsHidden(&isHidden)
mdl, err := c.Stable.Client().UsersById(user).MailFolders().Post(ctx, requestBody, nil) mdl, err := c.Stable.Client().Users().ByUserId(user).MailFolders().Post(ctx, requestBody, nil)
if err != nil { if err != nil {
return nil, graph.Wrap(ctx, err, "creating mail folder") return nil, graph.Wrap(ctx, err, "creating mail folder")
} }
@ -75,8 +75,10 @@ func (c Mail) CreateMailFolderWithParent(
mdl, err := service. mdl, err := service.
Client(). Client().
UsersById(user). Users().
MailFoldersById(parentID). ByUserId(user).
MailFolders().
ByMailFolderId(parentID).
ChildFolders(). ChildFolders().
Post(ctx, requestBody, nil) Post(ctx, requestBody, nil)
if err != nil { if err != nil {
@ -99,7 +101,12 @@ func (c Mail) DeleteContainer(
return graph.Stack(ctx, err) return graph.Stack(ctx, err)
} }
err = srv.Client().UsersById(user).MailFoldersById(folderID).Delete(ctx, nil) err = srv.Client().
Users().
ByUserId(user).
MailFolders().
ByMailFolderId(folderID).
Delete(ctx, nil)
if err != nil { if err != nil {
return graph.Stack(ctx, err) return graph.Stack(ctx, err)
} }
@ -121,7 +128,12 @@ func (c Mail) GetContainerByID(
return nil, graph.Wrap(ctx, err, "setting mail folder options") return nil, graph.Wrap(ctx, err, "setting mail folder options")
} }
resp, err := service.Client().UsersById(userID).MailFoldersById(dirID).Get(ctx, ofmf) resp, err := service.Client().
Users().
ByUserId(userID).
MailFolders().
ByMailFolderId(dirID).
Get(ctx, ofmf)
if err != nil { if err != nil {
return nil, graph.Stack(ctx, err) return nil, graph.Stack(ctx, err)
} }
@ -147,7 +159,7 @@ func (c Mail) GetItem(
Headers: headers, Headers: headers,
} }
mail, err := c.Stable.Client().UsersById(user).MessagesById(itemID).Get(ctx, itemOpts) mail, err := c.Stable.Client().Users().ByUserId(user).Messages().ByMessageId(itemID).Get(ctx, itemOpts)
if err != nil { if err != nil {
return nil, nil, graph.Stack(ctx, err) return nil, nil, graph.Stack(ctx, err)
} }
@ -173,8 +185,10 @@ func (c Mail) GetItem(
attached, err := c.LargeItem. attached, err := c.LargeItem.
Client(). Client().
UsersById(user). Users().
MessagesById(itemID). ByUserId(user).
Messages().
ByMessageId(itemID).
Attachments(). Attachments().
Get(ctx, options) Get(ctx, options)
if err == nil { if err == nil {
@ -204,8 +218,10 @@ func (c Mail) GetItem(
attachments, err := c.LargeItem. attachments, err := c.LargeItem.
Client(). Client().
UsersById(user). Users().
MessagesById(itemID). ByUserId(user).
Messages().
ByMessageId(itemID).
Attachments(). Attachments().
Get(ctx, options) Get(ctx, options)
if err != nil { if err != nil {
@ -224,9 +240,12 @@ func (c Mail) GetItem(
att, err := c.Stable. att, err := c.Stable.
Client(). Client().
UsersById(user). Users().
MessagesById(itemID). ByUserId(user).
AttachmentsById(ptr.Val(a.GetId())). Messages().
ByMessageId(itemID).
Attachments().
ByAttachmentId(ptr.Val(a.GetId())).
Get(ctx, options) Get(ctx, options)
if err != nil { if err != nil {
return nil, nil, return nil, nil,
@ -380,7 +399,12 @@ func NewMailPager(
return &mailPager{}, err return &mailPager{}, err
} }
builder := gs.Client().UsersById(user).MailFoldersById(directoryID).Messages() builder := gs.Client().
Users().
ByUserId(user).
MailFolders().
ByMailFolderId(directoryID).
Messages()
return &mailPager{gs, builder, options}, nil return &mailPager{gs, builder, options}, nil
} }
@ -426,7 +450,14 @@ func getMailDeltaBuilder(
directoryID string, directoryID string,
options *users.ItemMailFoldersItemMessagesDeltaRequestBuilderGetRequestConfiguration, options *users.ItemMailFoldersItemMessagesDeltaRequestBuilderGetRequestConfiguration,
) *users.ItemMailFoldersItemMessagesDeltaRequestBuilder { ) *users.ItemMailFoldersItemMessagesDeltaRequestBuilder {
builder := gs.Client().UsersById(user).MailFoldersById(directoryID).Messages().Delta() builder := gs.Client().
Users().
ByUserId(user).
MailFolders().
ByMailFolderId(directoryID).
Messages().
Delta()
return builder return builder
} }
@ -479,7 +510,13 @@ func (p *mailDeltaPager) setNext(nextLink string) {
} }
func (p *mailDeltaPager) reset(ctx context.Context) { func (p *mailDeltaPager) reset(ctx context.Context) {
p.builder = p.gs.Client().UsersById(p.user).MailFoldersById(p.directoryID).Messages().Delta() p.builder = p.gs.Client().
Users().
ByUserId(p.user).
MailFolders().
ByMailFolderId(p.directoryID).
Messages().
Delta()
} }
func (p *mailDeltaPager) valuesIn(pl api.PageLinker) ([]getIDAndAddtler, error) { func (p *mailDeltaPager) valuesIn(pl api.PageLinker) ([]getIDAndAddtler, error) {

View File

@ -93,10 +93,12 @@ func uploadLargeAttachment(
uploader attachmentUploadable, uploader attachmentUploadable,
attachment models.Attachmentable, attachment models.Attachmentable,
) error { ) error {
var ( bs, err := GetAttachmentBytes(attachment)
bs = attachmentBytes(attachment) if err != nil {
size = int64(len(bs)) return clues.Stack(err).WithClues(ctx)
) }
size := int64(len(bs))
session, err := uploader.uploadSession(ctx, ptr.Val(attachment.GetName()), size) session, err := uploader.uploadSession(ctx, ptr.Val(attachment.GetName()), size)
if err != nil { if err != nil {

View File

@ -37,9 +37,12 @@ func (mau *mailAttachmentUploader) getItemID() string {
func (mau *mailAttachmentUploader) uploadSmallAttachment(ctx context.Context, attach models.Attachmentable) error { func (mau *mailAttachmentUploader) uploadSmallAttachment(ctx context.Context, attach models.Attachmentable) error {
_, err := mau.service.Client(). _, err := mau.service.Client().
UsersById(mau.userID). Users().
MailFoldersById(mau.folderID). ByUserId(mau.userID).
MessagesById(mau.itemID). MailFolders().
ByMailFolderId(mau.folderID).
Messages().
ByMessageId(mau.itemID).
Attachments(). Attachments().
Post(ctx, attach, nil) Post(ctx, attach, nil)
if err != nil { if err != nil {
@ -60,9 +63,12 @@ func (mau *mailAttachmentUploader) uploadSession(
r, err := mau. r, err := mau.
service. service.
Client(). Client().
UsersById(mau.userID). Users().
MailFoldersById(mau.folderID). ByUserId(mau.userID).
MessagesById(mau.itemID). MailFolders().
ByMailFolderId(mau.folderID).
Messages().
ByMessageId(mau.itemID).
Attachments(). Attachments().
CreateUploadSession(). CreateUploadSession().
Post(ctx, session, nil) Post(ctx, session, nil)
@ -87,9 +93,12 @@ func (eau *eventAttachmentUploader) getItemID() string {
func (eau *eventAttachmentUploader) uploadSmallAttachment(ctx context.Context, attach models.Attachmentable) error { func (eau *eventAttachmentUploader) uploadSmallAttachment(ctx context.Context, attach models.Attachmentable) error {
_, err := eau.service.Client(). _, err := eau.service.Client().
UsersById(eau.userID). Users().
CalendarsById(eau.calendarID). ByUserId(eau.userID).
EventsById(eau.itemID). Calendars().
ByCalendarId(eau.calendarID).
Events().
ByEventId(eau.itemID).
Attachments(). Attachments().
Post(ctx, attach, nil) Post(ctx, attach, nil)
if err != nil { if err != nil {
@ -108,9 +117,12 @@ func (eau *eventAttachmentUploader) uploadSession(
session.SetAttachmentItem(makeSessionAttachment(attachmentName, attachmentSize)) session.SetAttachmentItem(makeSessionAttachment(attachmentName, attachmentSize))
r, err := eau.service.Client(). r, err := eau.service.Client().
UsersById(eau.userID). Users().
CalendarsById(eau.calendarID). ByUserId(eau.userID).
EventsById(eau.itemID). Calendars().
ByCalendarId(eau.calendarID).
Events().
ByEventId(eau.itemID).
Attachments(). Attachments().
CreateUploadSession(). CreateUploadSession().
Post(ctx, session, nil) Post(ctx, session, nil)

View File

@ -67,9 +67,9 @@ func (suite *MockSuite) TestMockExchangeCollection_NewExchangeCollectionMail_Hyd
t := suite.T() t := suite.T()
mdc := NewCollection(nil, nil, 3) mdc := NewCollection(nil, nil, 3)
buf := &bytes.Buffer{}
for stream := range mdc.Items(ctx, fault.New(true)) { for stream := range mdc.Items(ctx, fault.New(true)) {
buf := &bytes.Buffer{}
_, err := buf.ReadFrom(stream.ToReader()) _, err := buf.ReadFrom(stream.ToReader())
assert.NoError(t, err, clues.ToCore(err)) assert.NoError(t, err, clues.ToCore(err))

View File

@ -4,7 +4,6 @@ import (
"bytes" "bytes"
"context" "context"
"fmt" "fmt"
"reflect"
"runtime/trace" "runtime/trace"
"github.com/alcionai/clues" "github.com/alcionai/clues"
@ -74,7 +73,13 @@ func RestoreExchangeContact(
ctx = clues.Add(ctx, "item_id", ptr.Val(contact.GetId())) ctx = clues.Add(ctx, "item_id", ptr.Val(contact.GetId()))
response, err := service.Client().UsersById(user).ContactFoldersById(destination).Contacts().Post(ctx, contact, nil) response, err := service.Client().
Users().
ByUserId(user).
ContactFolders().
ByContactFolderId(destination).
Contacts().
Post(ctx, contact, nil)
if err != nil { if err != nil {
return nil, graph.Wrap(ctx, err, "uploading Contact") return nil, graph.Wrap(ctx, err, "uploading Contact")
} }
@ -122,7 +127,13 @@ func RestoreExchangeEvent(
transformedEvent.SetAttachments([]models.Attachmentable{}) transformedEvent.SetAttachments([]models.Attachmentable{})
} }
response, err := service.Client().UsersById(user).CalendarsById(destination).Events().Post(ctx, transformedEvent, nil) response, err := service.Client().
Users().
ByUserId(user).
Calendars().
ByCalendarId(destination).
Events().
Post(ctx, transformedEvent, nil)
if err != nil { if err != nil {
return nil, graph.Wrap(ctx, err, "uploading event") return nil, graph.Wrap(ctx, err, "uploading event")
} }
@ -223,10 +234,19 @@ func RestoreMailMessage(
return info, nil return info, nil
} }
// attachmentBytes is a helper to retrieve the attachment content from a models.Attachmentable // GetAttachmentBytes is a helper to retrieve the attachment content from a models.Attachmentable
// TODO: Revisit how we retrieve/persist attachment content during backup so this is not needed func GetAttachmentBytes(attachment models.Attachmentable) ([]byte, error) {
func attachmentBytes(attachment models.Attachmentable) []byte { bi, err := attachment.GetBackingStore().Get("contentBytes")
return reflect.Indirect(reflect.ValueOf(attachment)).FieldByName("contentBytes").Bytes() if err != nil {
return nil, err
}
bts, ok := bi.([]byte)
if !ok {
return nil, clues.New(fmt.Sprintf("unexpected type for attachment content: %T", bi))
}
return bts, nil
} }
// SendMailToBackStore function for transporting in-memory messageable item to M365 backstore // SendMailToBackStore function for transporting in-memory messageable item to M365 backstore
@ -245,7 +265,13 @@ func SendMailToBackStore(
// Item.Attachments --> HasAttachments doesn't always have a value populated when deserialized // Item.Attachments --> HasAttachments doesn't always have a value populated when deserialized
message.SetAttachments([]models.Attachmentable{}) message.SetAttachments([]models.Attachmentable{})
response, err := service.Client().UsersById(user).MailFoldersById(destination).Messages().Post(ctx, message, nil) response, err := service.Client().
Users().
ByUserId(user).
MailFolders().
ByMailFolderId(destination).
Messages().
Post(ctx, message, nil)
if err != nil { if err != nil {
return graph.Wrap(ctx, err, "restoring mail") return graph.Wrap(ctx, err, "restoring mail")
} }

View File

@ -25,10 +25,10 @@ func TestGraphErrorsUnitSuite(t *testing.T) {
} }
func odErr(code string) *odataerrors.ODataError { func odErr(code string) *odataerrors.ODataError {
odErr := &odataerrors.ODataError{} odErr := odataerrors.NewODataError()
merr := odataerrors.MainError{} merr := odataerrors.NewMainError()
merr.SetCode(&code) merr.SetCode(&code)
odErr.SetError(&merr) odErr.SetError(merr)
return odErr return odErr
} }
@ -300,33 +300,33 @@ func (suite *GraphErrorsUnitSuite) TestIsErrUnauthorized() {
func (suite *GraphErrorsUnitSuite) TestMalwareInfo() { func (suite *GraphErrorsUnitSuite) TestMalwareInfo() {
var ( var (
i = models.DriveItem{} i = models.NewDriveItem()
cb = models.User{} cb = models.NewUser()
cbID = "created-by" cbID = "created-by"
lm = models.User{} lm = models.NewUser()
lmID = "last-mod-by" lmID = "last-mod-by"
ref = models.ItemReference{} ref = models.NewItemReference()
refCID = "container-id" refCID = "container-id"
refCN = "container-name" refCN = "container-name"
refCP = "/drives/b!vF-sdsdsds-sdsdsa-sdsd/root:/Folder/container-name" refCP = "/drives/b!vF-sdsdsds-sdsdsa-sdsd/root:/Folder/container-name"
refCPexp = "/Folder/container-name" refCPexp = "/Folder/container-name"
mal = models.Malware{} mal = models.NewMalware()
malDesc = "malware-description" malDesc = "malware-description"
) )
cb.SetId(&cbID) cb.SetId(&cbID)
i.SetCreatedByUser(&cb) i.SetCreatedByUser(cb)
lm.SetId(&lmID) lm.SetId(&lmID)
i.SetLastModifiedByUser(&lm) i.SetLastModifiedByUser(lm)
ref.SetId(&refCID) ref.SetId(&refCID)
ref.SetName(&refCN) ref.SetName(&refCN)
ref.SetPath(&refCP) ref.SetPath(&refCP)
i.SetParentReference(&ref) i.SetParentReference(ref)
mal.SetDescription(&malDesc) mal.SetDescription(&malDesc)
i.SetMalware(&mal) i.SetMalware(mal)
expect := map[string]any{ expect := map[string]any{
fault.AddtlCreatedBy: cbID, fault.AddtlCreatedBy: cbID,
@ -337,7 +337,7 @@ func (suite *GraphErrorsUnitSuite) TestMalwareInfo() {
fault.AddtlMalwareDesc: malDesc, fault.AddtlMalwareDesc: malDesc,
} }
assert.Equal(suite.T(), expect, ItemInfo(&i)) assert.Equal(suite.T(), expect, ItemInfo(i))
} }
func (suite *GraphErrorsUnitSuite) TestIsErrFolderExists() { func (suite *GraphErrorsUnitSuite) TestIsErrFolderExists() {

View File

@ -227,7 +227,8 @@ func (suite *RetryMWIntgSuite) TestRetryMiddleware_RetryRequest_resetBodyAfter50
_, err = NewService(adpt). _, err = NewService(adpt).
Client(). Client().
UsersById("user"). Users().
ByUserId("user").
MailFolders(). MailFolders().
Post(ctx, body, nil) Post(ctx, body, nil)
require.NoError(t, err, clues.ToCore(err)) require.NoError(t, err, clues.ToCore(err))

View File

@ -16,6 +16,7 @@ import (
"golang.org/x/exp/slices" "golang.org/x/exp/slices"
"github.com/alcionai/corso/src/internal/common/ptr" "github.com/alcionai/corso/src/internal/common/ptr"
"github.com/alcionai/corso/src/internal/connector/exchange"
"github.com/alcionai/corso/src/internal/connector/onedrive" "github.com/alcionai/corso/src/internal/connector/onedrive"
"github.com/alcionai/corso/src/internal/connector/onedrive/metadata" "github.com/alcionai/corso/src/internal/connector/onedrive/metadata"
"github.com/alcionai/corso/src/internal/connector/support" "github.com/alcionai/corso/src/internal/connector/support"
@ -117,11 +118,15 @@ func attachmentEqual(
expected models.Attachmentable, expected models.Attachmentable,
got models.Attachmentable, got models.Attachmentable,
) bool { ) bool {
// This is super hacky, but seems like it would be good to have a comparison expectedData, err := exchange.GetAttachmentBytes(expected)
// of the actual content. I think the only other way to really get it is to if err != nil {
// serialize both structs to JSON and pull it from there or something though. return false
expectedData := reflect.Indirect(reflect.ValueOf(expected)).FieldByName("contentBytes").Bytes() }
gotData := reflect.Indirect(reflect.ValueOf(got)).FieldByName("contentBytes").Bytes()
gotData, err := exchange.GetAttachmentBytes(got)
if err != nil {
return false
}
if !reflect.DeepEqual(expectedData, gotData) { if !reflect.DeepEqual(expectedData, gotData) {
return false return false

View File

@ -54,9 +54,9 @@ func mustGetDefaultDriveID(
switch backupService { switch backupService {
case path.OneDriveService: case path.OneDriveService:
d, err = service.Client().UsersById(resourceOwner).Drive().Get(ctx, nil) d, err = service.Client().Users().ByUserId(resourceOwner).Drive().Get(ctx, nil)
case path.SharePointService: case path.SharePointService:
d, err = service.Client().SitesById(resourceOwner).Drive().Get(ctx, nil) d, err = service.Client().Sites().BySiteId(resourceOwner).Drive().Get(ctx, nil)
default: default:
assert.FailNowf(t, "unknown service type %s", backupService.String()) assert.FailNowf(t, "unknown service type %s", backupService.String())
} }

View File

@ -8,7 +8,6 @@ import (
"github.com/alcionai/clues" "github.com/alcionai/clues"
abstractions "github.com/microsoft/kiota-abstractions-go" abstractions "github.com/microsoft/kiota-abstractions-go"
"github.com/microsoftgraph/msgraph-sdk-go/drive"
"github.com/microsoftgraph/msgraph-sdk-go/drives" "github.com/microsoftgraph/msgraph-sdk-go/drives"
"github.com/microsoftgraph/msgraph-sdk-go/models" "github.com/microsoftgraph/msgraph-sdk-go/models"
"github.com/microsoftgraph/msgraph-sdk-go/sites" "github.com/microsoftgraph/msgraph-sdk-go/sites"
@ -17,6 +16,7 @@ import (
"github.com/alcionai/corso/src/internal/common/ptr" "github.com/alcionai/corso/src/internal/common/ptr"
"github.com/alcionai/corso/src/internal/connector/graph" "github.com/alcionai/corso/src/internal/connector/graph"
"github.com/alcionai/corso/src/internal/connector/graph/api" "github.com/alcionai/corso/src/internal/connector/graph/api"
onedrive "github.com/alcionai/corso/src/internal/connector/onedrive/consts"
"github.com/alcionai/corso/src/pkg/logger" "github.com/alcionai/corso/src/pkg/logger"
) )
@ -35,8 +35,8 @@ const pageSize = int32(999)
type driveItemPager struct { type driveItemPager struct {
gs graph.Servicer gs graph.Servicer
driveID string driveID string
builder *drives.ItemRootDeltaRequestBuilder builder *drives.ItemItemsItemDeltaRequestBuilder
options *drives.ItemRootDeltaRequestBuilderGetRequestConfiguration options *drives.ItemItemsItemDeltaRequestBuilderGetRequestConfiguration
} }
func NewItemPager( func NewItemPager(
@ -55,9 +55,9 @@ func NewItemPager(
} }
headers.Add("Prefer", strings.Join(preferHeaderItems, ",")) headers.Add("Prefer", strings.Join(preferHeaderItems, ","))
requestConfig := &drives.ItemRootDeltaRequestBuilderGetRequestConfiguration{ requestConfig := &drives.ItemItemsItemDeltaRequestBuilderGetRequestConfiguration{
Headers: headers, Headers: headers,
QueryParameters: &drives.ItemRootDeltaRequestBuilderGetQueryParameters{ QueryParameters: &drives.ItemItemsItemDeltaRequestBuilderGetQueryParameters{
Top: &pageCount, Top: &pageCount,
Select: fields, Select: fields,
}, },
@ -67,11 +67,14 @@ func NewItemPager(
gs: gs, gs: gs,
driveID: driveID, driveID: driveID,
options: requestConfig, options: requestConfig,
builder: gs.Client().DrivesById(driveID).Root().Delta(), builder: gs.Client().
Drives().
ByDriveId(driveID).
Items().ByDriveItemId(onedrive.RootID).Delta(),
} }
if len(link) > 0 { if len(link) > 0 {
res.builder = drives.NewItemRootDeltaRequestBuilder(link, gs.Adapter()) res.builder = drives.NewItemItemsItemDeltaRequestBuilder(link, gs.Adapter())
} }
return res return res
@ -92,11 +95,16 @@ func (p *driveItemPager) GetPage(ctx context.Context) (api.DeltaPageLinker, erro
} }
func (p *driveItemPager) SetNext(link string) { func (p *driveItemPager) SetNext(link string) {
p.builder = drives.NewItemRootDeltaRequestBuilder(link, p.gs.Adapter()) p.builder = drives.NewItemItemsItemDeltaRequestBuilder(link, p.gs.Adapter())
} }
func (p *driveItemPager) Reset() { func (p *driveItemPager) Reset() {
p.builder = p.gs.Client().DrivesById(p.driveID).Root().Delta() p.builder = p.gs.Client().
Drives().
ByDriveId(p.driveID).
Items().
ByDriveItemId(onedrive.RootID).
Delta()
} }
func (p *driveItemPager) ValuesIn(l api.DeltaPageLinker) ([]models.DriveItemable, error) { func (p *driveItemPager) ValuesIn(l api.DeltaPageLinker) ([]models.DriveItemable, error) {
@ -125,7 +133,7 @@ func NewUserDrivePager(
userID: userID, userID: userID,
gs: gs, gs: gs,
options: requestConfig, options: requestConfig,
builder: gs.Client().UsersById(userID).Drives(), builder: gs.Client().Users().ByUserId(userID).Drives(),
} }
return res return res
@ -143,7 +151,7 @@ func (p *userDrivePager) GetPage(ctx context.Context) (api.PageLinker, error) {
err error err error
) )
d, err := p.gs.Client().UsersById(p.userID).Drive().Get(ctx, nil) d, err := p.gs.Client().Users().ByUserId(p.userID).Drive().Get(ctx, nil)
if err != nil { if err != nil {
return nil, graph.Stack(ctx, err) return nil, graph.Stack(ctx, err)
} }
@ -204,7 +212,7 @@ func NewSiteDrivePager(
res := &siteDrivePager{ res := &siteDrivePager{
gs: gs, gs: gs,
options: requestConfig, options: requestConfig,
builder: gs.Client().SitesById(siteID).Drives(), builder: gs.Client().Sites().BySiteId(siteID).Drives(),
} }
return res return res
@ -308,8 +316,10 @@ func GetDriveItem(
driveID, itemID string, driveID, itemID string,
) (models.DriveItemable, error) { ) (models.DriveItemable, error) {
di, err := srv.Client(). di, err := srv.Client().
DrivesById(driveID). Drives().
ItemsById(itemID). ByDriveId(driveID).
Items().
ByDriveItemId(itemID).
Get(ctx, nil) Get(ctx, nil)
if err != nil { if err != nil {
return nil, graph.Wrap(ctx, err, "getting item") return nil, graph.Wrap(ctx, err, "getting item")
@ -325,8 +335,10 @@ func GetItemPermission(
) (models.PermissionCollectionResponseable, error) { ) (models.PermissionCollectionResponseable, error) {
perm, err := service. perm, err := service.
Client(). Client().
DrivesById(driveID). Drives().
ItemsById(itemID). ByDriveId(driveID).
Items().
ByDriveItemId(itemID).
Permissions(). Permissions().
Get(ctx, nil) Get(ctx, nil)
if err != nil { if err != nil {
@ -342,7 +354,8 @@ func GetUsersDrive(
user string, user string,
) (models.Driveable, error) { ) (models.Driveable, error) {
d, err := srv.Client(). d, err := srv.Client().
UsersById(user). Users().
ByUserId(user).
Drive(). Drive().
Get(ctx, nil) Get(ctx, nil)
if err != nil { if err != nil {
@ -358,7 +371,8 @@ func GetSitesDefaultDrive(
site string, site string,
) (models.Driveable, error) { ) (models.Driveable, error) {
d, err := srv.Client(). d, err := srv.Client().
SitesById(site). Sites().
BySiteId(site).
Drive(). Drive().
Get(ctx, nil) Get(ctx, nil)
if err != nil { if err != nil {
@ -373,10 +387,7 @@ func GetDriveRoot(
srv graph.Servicer, srv graph.Servicer,
driveID string, driveID string,
) (models.DriveItemable, error) { ) (models.DriveItemable, error) {
root, err := srv.Client(). root, err := srv.Client().Drives().ByDriveId(driveID).Root().Get(ctx, nil)
DrivesById(driveID).
Root().
Get(ctx, nil)
if err != nil { if err != nil {
return nil, graph.Wrap(ctx, err, "getting drive root") return nil, graph.Wrap(ctx, err, "getting drive root")
} }
@ -400,7 +411,7 @@ func GetFolderByName(
// https://learn.microsoft.com/en-us/graph/onedrive-addressing-driveitems#path-based-addressing // https://learn.microsoft.com/en-us/graph/onedrive-addressing-driveitems#path-based-addressing
// - which allows us to lookup an item by its path relative to the parent ID // - which allows us to lookup an item by its path relative to the parent ID
rawURL := fmt.Sprintf(itemByPathRawURLFmt, driveID, parentFolderID, folder) rawURL := fmt.Sprintf(itemByPathRawURLFmt, driveID, parentFolderID, folder)
builder := drive.NewItemsDriveItemItemRequestBuilder(rawURL, service.Adapter()) builder := drives.NewItemItemsDriveItemItemRequestBuilder(rawURL, service.Adapter())
foundItem, err := builder.Get(ctx, nil) foundItem, err := builder.Get(ctx, nil)
if err != nil { if err != nil {
@ -423,13 +434,15 @@ func PostItemPermissionUpdate(
ctx context.Context, ctx context.Context,
service graph.Servicer, service graph.Servicer,
driveID, itemID string, driveID, itemID string,
body *drive.ItemsItemInvitePostRequestBody, body *drives.ItemItemsItemInvitePostRequestBody,
) (drives.ItemItemsItemInviteResponseable, error) { ) (drives.ItemItemsItemInviteResponseable, error) {
ctx = graph.ConsumeNTokens(ctx, graph.PermissionsLC) ctx = graph.ConsumeNTokens(ctx, graph.PermissionsLC)
itm, err := service.Client(). itm, err := service.Client().
DrivesById(driveID). Drives().
ItemsById(itemID). ByDriveId(driveID).
Items().
ByDriveItemId(itemID).
Invite(). Invite().
Post(ctx, body, nil) Post(ctx, body, nil)
if err != nil { if err != nil {

View File

@ -734,8 +734,8 @@ func (suite *GetDriveItemUnitTestSuite) TestDownloadContent() {
gr graph.Requester gr graph.Requester
driveID string driveID string
iorc = io.NopCloser(bytes.NewReader([]byte("fnords"))) iorc = io.NopCloser(bytes.NewReader([]byte("fnords")))
item = &models.DriveItem{} item = models.NewDriveItem()
itemWID = &models.DriveItem{} itemWID = models.NewDriveItem()
) )
itemWID.SetId(ptr.To("brainhooldy")) itemWID.SetId(ptr.To("brainhooldy"))

View File

@ -2426,7 +2426,7 @@ func coreItem(
case isFolder: case isFolder:
item.SetFolder(models.NewFolder()) item.SetFolder(models.NewFolder())
case isPackage: case isPackage:
item.SetPackage(models.NewPackage_escaped()) item.SetPackage(models.NewPackageEscaped())
} }
return item return item
@ -2493,7 +2493,7 @@ func delItem(
case isFolder: case isFolder:
item.SetFolder(models.NewFolder()) item.SetFolder(models.NewFolder())
case isPackage: case isPackage:
item.SetPackage(models.NewPackage_escaped()) item.SetPackage(models.NewPackageEscaped())
} }
return item return item

View File

@ -7,4 +7,6 @@ const (
// const used as the root-of-drive dir for the drive portion of a path prefix. // const used as the root-of-drive dir for the drive portion of a path prefix.
// eg: tid/onedrive/ro/files/drives/driveid/root:/... // eg: tid/onedrive/ro/files/drives/driveid/root:/...
RootPathDir = "root:" RootPathDir = "root:"
// root id for drive items
RootID = "root"
) )

View File

@ -6,7 +6,7 @@ import (
"strings" "strings"
"github.com/alcionai/clues" "github.com/alcionai/clues"
"github.com/microsoftgraph/msgraph-sdk-go/drive" "github.com/microsoftgraph/msgraph-sdk-go/drives"
"github.com/microsoftgraph/msgraph-sdk-go/models" "github.com/microsoftgraph/msgraph-sdk-go/models"
"golang.org/x/exp/maps" "golang.org/x/exp/maps"
@ -224,7 +224,7 @@ func CreateItem(
// Graph SDK doesn't yet provide a POST method for `/children` so we set the `rawUrl` ourselves as recommended // Graph SDK doesn't yet provide a POST method for `/children` so we set the `rawUrl` ourselves as recommended
// here: https://github.com/microsoftgraph/msgraph-sdk-go/issues/155#issuecomment-1136254310 // here: https://github.com/microsoftgraph/msgraph-sdk-go/issues/155#issuecomment-1136254310
rawURL := fmt.Sprintf(itemChildrenRawURLFmt, driveID, parentFolderID) rawURL := fmt.Sprintf(itemChildrenRawURLFmt, driveID, parentFolderID)
builder := drive.NewItemsRequestBuilder(rawURL, service.Adapter()) builder := drives.NewItemItemsRequestBuilder(rawURL, service.Adapter())
newItem, err := builder.Post(ctx, newItem, nil) newItem, err := builder.Post(ctx, newItem, nil)
if err != nil { if err != nil {
@ -266,7 +266,7 @@ func GetAllFolders(
prefix string, prefix string,
errs *fault.Bus, errs *fault.Bus,
) ([]*Displayable, error) { ) ([]*Displayable, error) {
drives, err := api.GetAllDrives(ctx, pager, true, maxDrivesRetries) drvs, err := api.GetAllDrives(ctx, pager, true, maxDrivesRetries)
if err != nil { if err != nil {
return nil, clues.Wrap(err, "getting OneDrive folders") return nil, clues.Wrap(err, "getting OneDrive folders")
} }
@ -276,7 +276,7 @@ func GetAllFolders(
el = errs.Local() el = errs.Local()
) )
for _, d := range drives { for _, d := range drvs {
if el.Failure() != nil { if el.Failure() != nil {
break break
} }
@ -358,7 +358,12 @@ func DeleteItem(
driveID string, driveID string,
itemID string, itemID string,
) error { ) error {
err := gs.Client().DrivesById(driveID).ItemsById(itemID).Delete(ctx, nil) err := gs.Client().
Drives().
ByDriveId(driveID).
Items().
ByDriveItemId(itemID).
Delete(ctx, nil)
if err != nil { if err != nil {
return graph.Wrap(ctx, err, "deleting item").With("item_id", itemID) return graph.Wrap(ctx, err, "deleting item").With("item_id", itemID)
} }

View File

@ -43,10 +43,10 @@ const (
) )
func odErr(code string) *odataerrors.ODataError { func odErr(code string) *odataerrors.ODataError {
odErr := &odataerrors.ODataError{} odErr := odataerrors.NewODataError()
merr := odataerrors.MainError{} merr := odataerrors.NewMainError()
merr.SetCode(&code) merr.SetCode(&code)
odErr.SetError(&merr) odErr.SetError(merr)
return odErr return odErr
} }

View File

@ -346,8 +346,10 @@ func driveItemWriter(
ctx = clues.Add(ctx, "upload_item_id", itemID) ctx = clues.Add(ctx, "upload_item_id", itemID)
r, err := service.Client(). r, err := service.Client().
DrivesById(driveID). Drives().
ItemsById(itemID). ByDriveId(driveID).
Items().
ByDriveItemId(itemID).
CreateUploadSession(). CreateUploadSession().
Post(ctx, session, nil) Post(ctx, session, nil)
if err != nil { if err != nil {

View File

@ -151,7 +151,7 @@ func (suite *ItemIntegrationSuite) TestItemWriter() {
t := suite.T() t := suite.T()
srv := suite.service srv := suite.service
root, err := srv.Client().DrivesById(test.driveID).Root().Get(ctx, nil) root, err := srv.Client().Drives().ByDriveId(test.driveID).Root().Get(ctx, nil)
require.NoError(t, err, clues.ToCore(err)) require.NoError(t, err, clues.ToCore(err))
newFolderName := tester.DefaultTestRestoreDestination("folder").ContainerName newFolderName := tester.DefaultTestRestoreDestination("folder").ContainerName
@ -229,7 +229,7 @@ func (suite *ItemIntegrationSuite) TestDriveGetFolder() {
t := suite.T() t := suite.T()
srv := suite.service srv := suite.service
root, err := srv.Client().DrivesById(test.driveID).Root().Get(ctx, nil) root, err := srv.Client().Drives().ByDriveId(test.driveID).Root().Get(ctx, nil)
require.NoError(t, err, clues.ToCore(err)) require.NoError(t, err, clues.ToCore(err))
// Lookup a folder that doesn't exist // Lookup a folder that doesn't exist

View File

@ -5,7 +5,7 @@ import (
"fmt" "fmt"
"github.com/alcionai/clues" "github.com/alcionai/clues"
"github.com/microsoftgraph/msgraph-sdk-go/drive" "github.com/microsoftgraph/msgraph-sdk-go/drives"
"github.com/microsoftgraph/msgraph-sdk-go/models" "github.com/microsoftgraph/msgraph-sdk-go/models"
"github.com/alcionai/corso/src/internal/common/ptr" "github.com/alcionai/corso/src/internal/common/ptr"
@ -170,9 +170,12 @@ func UpdatePermissions(
err = graph.NewService(a). err = graph.NewService(a).
Client(). Client().
DrivesById(driveID). Drives().
ItemsById(itemID). ByDriveId(driveID).
PermissionsById(pid). Items().
ByDriveItemId(itemID).
Permissions().
ByPermissionId(pid).
Delete(graph.ConsumeNTokens(ictx, graph.PermissionsLC), nil) Delete(graph.ConsumeNTokens(ictx, graph.PermissionsLC), nil)
if err != nil { if err != nil {
return graph.Wrap(ictx, err, "removing permissions") return graph.Wrap(ictx, err, "removing permissions")
@ -201,7 +204,7 @@ func UpdatePermissions(
continue continue
} }
pbody := drive.NewItemsItemInvitePostRequestBody() pbody := drives.NewItemItemsItemInvitePostRequestBody()
pbody.SetRoles(roles) pbody.SetRoles(roles)
if p.Expiration != nil { if p.Expiration != nil {

View File

@ -91,7 +91,7 @@ func GetSite(ctx context.Context, gs graph.Servicer, siteID string) (models.Site
}, },
} }
resp, err := gs.Client().SitesById(siteID).Get(ctx, options) resp, err := gs.Client().Sites().BySiteId(siteID).Get(ctx, options)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@ -174,11 +174,13 @@ func (suite *SharePointCollectionSuite) TestCollection_Items() {
// TestRestoreListCollection verifies Graph Restore API for the List Collection // TestRestoreListCollection verifies Graph Restore API for the List Collection
func (suite *SharePointCollectionSuite) TestListCollection_Restore() { func (suite *SharePointCollectionSuite) TestListCollection_Restore() {
t := suite.T()
// https://github.com/microsoftgraph/msgraph-sdk-go/issues/490
t.Skip("disabled until upstream issue with list restore is fixed.")
ctx, flush := tester.NewContext() ctx, flush := tester.NewContext()
defer flush() defer flush()
t := suite.T()
service := createTestService(t, suite.creds) service := createTestService(t, suite.creds)
listing := spMock.ListDefault("Mock List") listing := spMock.ListDefault("Mock List")
testName := "MockListing" testName := "MockListing"
@ -200,7 +202,7 @@ func (suite *SharePointCollectionSuite) TestListCollection_Restore() {
// Clean-Up // Clean-Up
var ( var (
builder = service.Client().SitesById(suite.siteID).Lists() builder = service.Client().Sites().BySiteId(suite.siteID).Lists()
isFound bool isFound bool
deleteID string deleteID string
) )

View File

@ -36,7 +36,7 @@ func preFetchLists(
siteID string, siteID string,
) ([]listTuple, error) { ) ([]listTuple, error) {
var ( var (
builder = gs.Client().SitesById(siteID).Lists() builder = gs.Client().Sites().BySiteId(siteID).Lists()
options = preFetchListOptions() options = preFetchListOptions()
listTuples = make([]listTuple, 0) listTuples = make([]listTuple, 0)
) )
@ -128,7 +128,7 @@ func loadSiteLists(
err error err error
) )
entry, err = gs.Client().SitesById(siteID).ListsById(id).Get(ctx, nil) entry, err = gs.Client().Sites().BySiteId(siteID).Lists().ByListId(id).Get(ctx, nil)
if err != nil { if err != nil {
el.AddRecoverable(graph.Wrap(ctx, err, "getting site list")) el.AddRecoverable(graph.Wrap(ctx, err, "getting site list"))
return return
@ -195,7 +195,7 @@ func fetchListItems(
errs *fault.Bus, errs *fault.Bus,
) ([]models.ListItemable, error) { ) ([]models.ListItemable, error) {
var ( var (
prefix = gs.Client().SitesById(siteID).ListsById(listID) prefix = gs.Client().Sites().BySiteId(siteID).Lists().ByListId(listID)
builder = prefix.Items() builder = prefix.Items()
itms = make([]models.ListItemable, 0) itms = make([]models.ListItemable, 0)
el = errs.Local() el = errs.Local()
@ -216,7 +216,7 @@ func fetchListItems(
break break
} }
newPrefix := prefix.ItemsById(ptr.Val(itm.GetId())) newPrefix := prefix.Items().ByListItemId(ptr.Val(itm.GetId()))
fields, err := newPrefix.Fields().Get(ctx, nil) fields, err := newPrefix.Fields().Get(ctx, nil)
if err != nil { if err != nil {
@ -252,7 +252,7 @@ func fetchColumns(
cs := make([]models.ColumnDefinitionable, 0) cs := make([]models.ColumnDefinitionable, 0)
if len(cTypeID) == 0 { if len(cTypeID) == 0 {
builder := gs.Client().SitesById(siteID).ListsById(listID).Columns() builder := gs.Client().Sites().BySiteId(siteID).Lists().ByListId(listID).Columns()
for { for {
resp, err := builder.Get(ctx, nil) resp, err := builder.Get(ctx, nil)
@ -270,7 +270,14 @@ func fetchColumns(
builder = sites.NewItemListsItemColumnsRequestBuilder(link, gs.Adapter()) builder = sites.NewItemListsItemColumnsRequestBuilder(link, gs.Adapter())
} }
} else { } else {
builder := gs.Client().SitesById(siteID).ListsById(listID).ContentTypesById(cTypeID).Columns() builder := gs.Client().
Sites().
BySiteId(siteID).
Lists().
ByListId(listID).
ContentTypes().
ByContentTypeId(cTypeID).
Columns()
for { for {
resp, err := builder.Get(ctx, nil) resp, err := builder.Get(ctx, nil)
@ -307,7 +314,7 @@ func fetchContentTypes(
var ( var (
el = errs.Local() el = errs.Local()
cTypes = make([]models.ContentTypeable, 0) cTypes = make([]models.ContentTypeable, 0)
builder = gs.Client().SitesById(siteID).ListsById(listID).ContentTypes() builder = gs.Client().Sites().BySiteId(siteID).Lists().ByListId(listID).ContentTypes()
) )
for { for {
@ -363,8 +370,15 @@ func fetchColumnLinks(
siteID, listID, cTypeID string, siteID, listID, cTypeID string,
) ([]models.ColumnLinkable, error) { ) ([]models.ColumnLinkable, error) {
var ( var (
builder = gs.Client().SitesById(siteID).ListsById(listID).ContentTypesById(cTypeID).ColumnLinks() builder = gs.Client().
links = make([]models.ColumnLinkable, 0) Sites().
BySiteId(siteID).
Lists().
ByListId(listID).
ContentTypes().
ByContentTypeId(cTypeID).
ColumnLinks()
links = make([]models.ColumnLinkable, 0)
) )
for { for {
@ -396,7 +410,7 @@ func DeleteList(
gs graph.Servicer, gs graph.Servicer,
siteID, listID string, siteID, listID string,
) error { ) error {
err := gs.Client().SitesById(siteID).ListsById(listID).Delete(ctx, nil) err := gs.Client().Sites().BySiteId(siteID).Lists().ByListId(listID).Delete(ctx, nil)
if err != nil { if err != nil {
return graph.Wrap(ctx, err, "deleting list") return graph.Wrap(ctx, err, "deleting list")
} }

View File

@ -184,11 +184,7 @@ func restoreListItem(
newList.SetItems(contents) newList.SetItems(contents)
// Restore to List base to M365 back store // Restore to List base to M365 back store
restoredList, err := service. restoredList, err := service.Client().Sites().BySiteId(siteID).Lists().Post(ctx, newList, nil)
Client().
SitesById(siteID).
Lists().
Post(ctx, newList, nil)
if err != nil { if err != nil {
return dii, graph.Wrap(ctx, err, "restoring list") return dii, graph.Wrap(ctx, err, "restoring list")
} }
@ -198,8 +194,10 @@ func restoreListItem(
if len(contents) > 0 { if len(contents) > 0 {
for _, lItem := range contents { for _, lItem := range contents {
_, err := service.Client(). _, err := service.Client().
SitesById(siteID). Sites().
ListsById(ptr.Val(restoredList.GetId())). BySiteId(siteID).
Lists().
ByListId(ptr.Val(restoredList.GetId())).
Items(). Items().
Post(ctx, lItem, nil) Post(ctx, lItem, nil)
if err != nil { if err != nil {

View File

@ -213,7 +213,7 @@ func (suite *DataSupportSuite) TestCreatePageFromBytes() {
pg.SetWebUrl(&title) pg.SetWebUrl(&title)
writer := kioser.NewJsonSerializationWriter() writer := kioser.NewJsonSerializationWriter()
err := pg.Serialize(writer) err := writer.WriteObjectValue("", pg)
require.NoError(t, err, clues.ToCore(err)) require.NoError(t, err, clues.ToCore(err))
byteArray, err := writer.GetSerializedContent() byteArray, err := writer.GetSerializedContent()
@ -231,6 +231,11 @@ func (suite *DataSupportSuite) TestCreatePageFromBytes() {
result, err := CreatePageFromBytes(test.getBytes(t)) result, err := CreatePageFromBytes(test.getBytes(t))
test.checkError(t, err) test.checkError(t, err)
test.isNil(t, result) test.isNil(t, result)
if result != nil {
assert.Equal(t, "Tested", *result.GetName(), "name")
assert.Equal(t, "Tested", *result.GetTitle(), "title")
assert.Equal(t, "Tested", *result.GetWebUrl(), "webURL")
}
}) })
} }
} }

View File

@ -9,7 +9,7 @@ import (
"github.com/alcionai/clues" "github.com/alcionai/clues"
"github.com/google/uuid" "github.com/google/uuid"
"github.com/microsoftgraph/msgraph-sdk-go/drive" "github.com/microsoftgraph/msgraph-sdk-go/drives"
"github.com/microsoftgraph/msgraph-sdk-go/models" "github.com/microsoftgraph/msgraph-sdk-go/models"
"github.com/microsoftgraph/msgraph-sdk-go/users" "github.com/microsoftgraph/msgraph-sdk-go/users"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
@ -982,8 +982,10 @@ func testExchangeContinuousBackups(suite *BackupOpIntegrationSuite, toggles cont
_, err := gc.Service. _, err := gc.Service.
Client(). Client().
UsersById(uidn.ID()). Users().
MailFoldersById(from.containerID). ByUserId(uidn.ID()).
MailFolders().
ByMailFolderId(from.containerID).
Move(). Move().
Post(ctx, body, nil) Post(ctx, body, nil)
require.NoError(t, err, clues.ToCore(err)) require.NoError(t, err, clues.ToCore(err))
@ -1078,7 +1080,7 @@ func testExchangeContinuousBackups(suite *BackupOpIntegrationSuite, toggles cont
name: "rename a folder", name: "rename a folder",
updateUserData: func(t *testing.T) { updateUserData: func(t *testing.T) {
for category, d := range dataset { for category, d := range dataset {
cli := gc.Service.Client().UsersById(uidn.ID()) cli := gc.Service.Client().Users().ByUserId(uidn.ID())
containerID := d.dests[container3].containerID containerID := d.dests[container3].containerID
newLoc := containerRename newLoc := containerRename
@ -1098,7 +1100,7 @@ func testExchangeContinuousBackups(suite *BackupOpIntegrationSuite, toggles cont
switch category { switch category {
case path.EmailCategory: case path.EmailCategory:
cmf := cli.MailFoldersById(containerID) cmf := cli.MailFolders().ByMailFolderId(containerID)
body, err := cmf.Get(ctx, nil) body, err := cmf.Get(ctx, nil)
require.NoError(t, err, "getting mail folder", clues.ToCore(err)) require.NoError(t, err, "getting mail folder", clues.ToCore(err))
@ -1108,7 +1110,7 @@ func testExchangeContinuousBackups(suite *BackupOpIntegrationSuite, toggles cont
require.NoError(t, err, "updating mail folder name", clues.ToCore(err)) require.NoError(t, err, "updating mail folder name", clues.ToCore(err))
case path.ContactsCategory: case path.ContactsCategory:
ccf := cli.ContactFoldersById(containerID) ccf := cli.ContactFolders().ByContactFolderId(containerID)
body, err := ccf.Get(ctx, nil) body, err := ccf.Get(ctx, nil)
require.NoError(t, err, "getting contact folder", clues.ToCore(err)) require.NoError(t, err, "getting contact folder", clues.ToCore(err))
@ -1118,7 +1120,7 @@ func testExchangeContinuousBackups(suite *BackupOpIntegrationSuite, toggles cont
require.NoError(t, err, "updating contact folder name", clues.ToCore(err)) require.NoError(t, err, "updating contact folder name", clues.ToCore(err))
case path.EventsCategory: case path.EventsCategory:
cbi := cli.CalendarsById(containerID) cbi := cli.Calendars().ByCalendarId(containerID)
body, err := cbi.Get(ctx, nil) body, err := cbi.Get(ctx, nil)
require.NoError(t, err, "getting calendar", clues.ToCore(err)) require.NoError(t, err, "getting calendar", clues.ToCore(err))
@ -1141,7 +1143,7 @@ func testExchangeContinuousBackups(suite *BackupOpIntegrationSuite, toggles cont
updateUserData: func(t *testing.T) { updateUserData: func(t *testing.T) {
for category, d := range dataset { for category, d := range dataset {
containerID := d.dests[container1].containerID containerID := d.dests[container1].containerID
cli := gc.Service.Client().UsersById(uidn.ID()) cli := gc.Service.Client().Users().ByUserId(uidn.ID())
switch category { switch category {
case path.EmailCategory: case path.EmailCategory:
@ -1149,7 +1151,7 @@ func testExchangeContinuousBackups(suite *BackupOpIntegrationSuite, toggles cont
body, err := support.CreateMessageFromBytes(itemData) body, err := support.CreateMessageFromBytes(itemData)
require.NoError(t, err, "transforming mail bytes to messageable", clues.ToCore(err)) require.NoError(t, err, "transforming mail bytes to messageable", clues.ToCore(err))
itm, err := cli.MailFoldersById(containerID).Messages().Post(ctx, body, nil) itm, err := cli.MailFolders().ByMailFolderId(containerID).Messages().Post(ctx, body, nil)
require.NoError(t, err, "posting email item", clues.ToCore(err)) require.NoError(t, err, "posting email item", clues.ToCore(err))
expectDeets.AddItem( expectDeets.AddItem(
@ -1162,7 +1164,7 @@ func testExchangeContinuousBackups(suite *BackupOpIntegrationSuite, toggles cont
body, err := support.CreateContactFromBytes(itemData) body, err := support.CreateContactFromBytes(itemData)
require.NoError(t, err, "transforming contact bytes to contactable", clues.ToCore(err)) require.NoError(t, err, "transforming contact bytes to contactable", clues.ToCore(err))
itm, err := cli.ContactFoldersById(containerID).Contacts().Post(ctx, body, nil) itm, err := cli.ContactFolders().ByContactFolderId(containerID).Contacts().Post(ctx, body, nil)
require.NoError(t, err, "posting contact item", clues.ToCore(err)) require.NoError(t, err, "posting contact item", clues.ToCore(err))
expectDeets.AddItem( expectDeets.AddItem(
@ -1175,7 +1177,7 @@ func testExchangeContinuousBackups(suite *BackupOpIntegrationSuite, toggles cont
body, err := support.CreateEventFromBytes(itemData) body, err := support.CreateEventFromBytes(itemData)
require.NoError(t, err, "transforming event bytes to eventable", clues.ToCore(err)) require.NoError(t, err, "transforming event bytes to eventable", clues.ToCore(err))
itm, err := cli.CalendarsById(containerID).Events().Post(ctx, body, nil) itm, err := cli.Calendars().ByCalendarId(containerID).Events().Post(ctx, body, nil)
require.NoError(t, err, "posting events item", clues.ToCore(err)) require.NoError(t, err, "posting events item", clues.ToCore(err))
expectDeets.AddItem( expectDeets.AddItem(
@ -1195,7 +1197,7 @@ func testExchangeContinuousBackups(suite *BackupOpIntegrationSuite, toggles cont
updateUserData: func(t *testing.T) { updateUserData: func(t *testing.T) {
for category, d := range dataset { for category, d := range dataset {
containerID := d.dests[container1].containerID containerID := d.dests[container1].containerID
cli := gc.Service.Client().UsersById(uidn.ID()) cli := gc.Service.Client().Users().ByUserId(uidn.ID())
switch category { switch category {
case path.EmailCategory: case path.EmailCategory:
@ -1203,7 +1205,7 @@ func testExchangeContinuousBackups(suite *BackupOpIntegrationSuite, toggles cont
require.NoError(t, err, "getting message ids", clues.ToCore(err)) require.NoError(t, err, "getting message ids", clues.ToCore(err))
require.NotEmpty(t, ids, "message ids in folder") require.NotEmpty(t, ids, "message ids in folder")
err = cli.MessagesById(ids[0]).Delete(ctx, nil) err = cli.Messages().ByMessageId(ids[0]).Delete(ctx, nil)
require.NoError(t, err, "deleting email item", clues.ToCore(err)) require.NoError(t, err, "deleting email item", clues.ToCore(err))
expectDeets.RemoveItem( expectDeets.RemoveItem(
@ -1216,7 +1218,7 @@ func testExchangeContinuousBackups(suite *BackupOpIntegrationSuite, toggles cont
require.NoError(t, err, "getting contact ids", clues.ToCore(err)) require.NoError(t, err, "getting contact ids", clues.ToCore(err))
require.NotEmpty(t, ids, "contact ids in folder") require.NotEmpty(t, ids, "contact ids in folder")
err = cli.ContactsById(ids[0]).Delete(ctx, nil) err = cli.Contacts().ByContactId(ids[0]).Delete(ctx, nil)
require.NoError(t, err, "deleting contact item", clues.ToCore(err)) require.NoError(t, err, "deleting contact item", clues.ToCore(err))
expectDeets.RemoveItem( expectDeets.RemoveItem(
@ -1229,7 +1231,7 @@ func testExchangeContinuousBackups(suite *BackupOpIntegrationSuite, toggles cont
require.NoError(t, err, "getting event ids", clues.ToCore(err)) require.NoError(t, err, "getting event ids", clues.ToCore(err))
require.NotEmpty(t, ids, "event ids in folder") require.NotEmpty(t, ids, "event ids in folder")
err = cli.CalendarsById(ids[0]).Delete(ctx, nil) err = cli.Calendars().ByCalendarId(ids[0]).Delete(ctx, nil)
require.NoError(t, err, "deleting calendar", clues.ToCore(err)) require.NoError(t, err, "deleting calendar", clues.ToCore(err))
expectDeets.RemoveItem( expectDeets.RemoveItem(
@ -1499,8 +1501,8 @@ func runDriveIncrementalTest(
// Use path-based indexing to get the folder's ID. This is sourced from the // Use path-based indexing to get the folder's ID. This is sourced from the
// onedrive package `getFolder` function. // onedrive package `getFolder` function.
itemURL := fmt.Sprintf("https://graph.microsoft.com/v1.0/drives/%s/root:/%s", driveID, destName) itemURL := fmt.Sprintf("https://graph.microsoft.com/v1.0/drives/%s/root:/%s", driveID, destName)
resp, err := drive. resp, err := drives.
NewItemsDriveItemItemRequestBuilder(itemURL, gc.Service.Adapter()). NewItemItemsDriveItemItemRequestBuilder(itemURL, gc.Service.Adapter()).
Get(ctx, nil) Get(ctx, nil)
require.NoError(t, err, "getting drive folder ID", "folder name", destName, clues.ToCore(err)) require.NoError(t, err, "getting drive folder ID", "folder name", destName, clues.ToCore(err))
@ -1659,10 +1661,12 @@ func runDriveIncrementalTest(
{ {
name: "update contents of a file", name: "update contents of a file",
updateFiles: func(t *testing.T) { updateFiles: func(t *testing.T) {
err := gc.Service. _, err := gc.Service.
Client(). Client().
DrivesById(driveID). Drives().
ItemsById(ptr.Val(newFile.GetId())). ByDriveId(driveID).
Items().
ByDriveItemId(ptr.Val(newFile.GetId())).
Content(). Content().
Put(ctx, []byte("new content"), nil) Put(ctx, []byte("new content"), nil)
require.NoErrorf(t, err, "updating file contents: %v", clues.ToCore(err)) require.NoErrorf(t, err, "updating file contents: %v", clues.ToCore(err))
@ -1685,8 +1689,10 @@ func runDriveIncrementalTest(
_, err := gc.Service. _, err := gc.Service.
Client(). Client().
DrivesById(driveID). Drives().
ItemsById(ptr.Val(newFile.GetId())). ByDriveId(driveID).
Items().
ByDriveItemId(ptr.Val(newFile.GetId())).
Patch(ctx, driveItem, nil) Patch(ctx, driveItem, nil)
require.NoError(t, err, "renaming file %v", clues.ToCore(err)) require.NoError(t, err, "renaming file %v", clues.ToCore(err))
}, },
@ -1707,8 +1713,10 @@ func runDriveIncrementalTest(
_, err := gc.Service. _, err := gc.Service.
Client(). Client().
DrivesById(driveID). Drives().
ItemsById(ptr.Val(newFile.GetId())). ByDriveId(driveID).
Items().
ByDriveItemId(ptr.Val(newFile.GetId())).
Patch(ctx, driveItem, nil) Patch(ctx, driveItem, nil)
require.NoErrorf(t, err, "moving file between folders %v", clues.ToCore(err)) require.NoErrorf(t, err, "moving file between folders %v", clues.ToCore(err))
@ -1728,8 +1736,10 @@ func runDriveIncrementalTest(
// https://github.com/alcionai/corso/issues/2707 // https://github.com/alcionai/corso/issues/2707
err = newDeleteServicer(t). err = newDeleteServicer(t).
Client(). Client().
DrivesById(driveID). Drives().
ItemsById(ptr.Val(newFile.GetId())). ByDriveId(driveID).
Items().
ByDriveItemId(ptr.Val(newFile.GetId())).
Delete(ctx, nil) Delete(ctx, nil)
require.NoErrorf(t, err, "deleting file %v", clues.ToCore(err)) require.NoErrorf(t, err, "deleting file %v", clues.ToCore(err))
@ -1752,8 +1762,10 @@ func runDriveIncrementalTest(
_, err := gc.Service. _, err := gc.Service.
Client(). Client().
DrivesById(driveID). Drives().
ItemsById(child). ByDriveId(driveID).
Items().
ByDriveItemId(child).
Patch(ctx, driveItem, nil) Patch(ctx, driveItem, nil)
require.NoError(t, err, "moving folder", clues.ToCore(err)) require.NoError(t, err, "moving folder", clues.ToCore(err))
@ -1779,8 +1791,10 @@ func runDriveIncrementalTest(
_, err := gc.Service. _, err := gc.Service.
Client(). Client().
DrivesById(driveID). Drives().
ItemsById(child). ByDriveId(driveID).
Items().
ByDriveItemId(child).
Patch(ctx, driveItem, nil) Patch(ctx, driveItem, nil)
require.NoError(t, err, "renaming folder", clues.ToCore(err)) require.NoError(t, err, "renaming folder", clues.ToCore(err))
@ -1802,8 +1816,10 @@ func runDriveIncrementalTest(
// https://github.com/alcionai/corso/issues/2707 // https://github.com/alcionai/corso/issues/2707
err = newDeleteServicer(t). err = newDeleteServicer(t).
Client(). Client().
DrivesById(driveID). Drives().
ItemsById(container). ByDriveId(driveID).
Items().
ByDriveItemId(container).
Delete(ctx, nil) Delete(ctx, nil)
require.NoError(t, err, "deleting folder", clues.ToCore(err)) require.NoError(t, err, "deleting folder", clues.ToCore(err))
@ -1833,7 +1849,7 @@ func runDriveIncrementalTest(
"https://graph.microsoft.com/v1.0/drives/%s/root:/%s", "https://graph.microsoft.com/v1.0/drives/%s/root:/%s",
driveID, driveID,
container3) container3)
resp, err := drive.NewItemsDriveItemItemRequestBuilder(itemURL, gc.Service.Adapter()). resp, err := drives.NewItemItemsDriveItemItemRequestBuilder(itemURL, gc.Service.Adapter()).
Get(ctx, nil) Get(ctx, nil)
require.NoError(t, err, "getting drive folder ID", "folder name", container3, clues.ToCore(err)) require.NoError(t, err, "getting drive folder ID", "folder name", container3, clues.ToCore(err))

View File

@ -47,7 +47,7 @@ func (c Sites) GetAll(ctx context.Context, errs *fault.Bus) ([]models.Siteable,
return nil, graph.Wrap(ctx, err, "getting all sites") return nil, graph.Wrap(ctx, err, "getting all sites")
} }
iter, err := msgraphgocore.NewPageIterator( iter, err := msgraphgocore.NewPageIterator[models.Siteable](
resp, resp,
service.Adapter(), service.Adapter(),
models.CreateSiteCollectionResponseFromDiscriminatorValue) models.CreateSiteCollectionResponseFromDiscriminatorValue)
@ -60,12 +60,12 @@ func (c Sites) GetAll(ctx context.Context, errs *fault.Bus) ([]models.Siteable,
el = errs.Local() el = errs.Local()
) )
iterator := func(item any) bool { iterator := func(item models.Siteable) bool {
if el.Failure() != nil { if el.Failure() != nil {
return false return false
} }
s, err := validateSite(item) err := validateSite(item)
if errors.Is(err, errKnownSkippableCase) { if errors.Is(err, errKnownSkippableCase) {
// safe to no-op // safe to no-op
return true return true
@ -76,7 +76,7 @@ func (c Sites) GetAll(ctx context.Context, errs *fault.Bus) ([]models.Siteable,
return true return true
} }
us = append(us, s) us = append(us, item)
return true return true
} }
@ -109,7 +109,7 @@ func (c Sites) GetByID(ctx context.Context, identifier string) (models.Siteable,
ctx = clues.Add(ctx, "given_site_id", identifier) ctx = clues.Add(ctx, "given_site_id", identifier)
if siteIDRE.MatchString(identifier) { if siteIDRE.MatchString(identifier) {
resp, err = c.stable.Client().SitesById(identifier).Get(ctx, nil) resp, err = c.stable.Client().Sites().BySiteId(identifier).Get(ctx, nil)
if err != nil { if err != nil {
return nil, graph.Wrap(ctx, err, "getting site by id") return nil, graph.Wrap(ctx, err, "getting site by id")
} }
@ -168,38 +168,33 @@ const personalSitePath = "sharepoint.com/personal/"
// validateSite ensures the item is a Siteable, and contains the necessary // validateSite ensures the item is a Siteable, and contains the necessary
// identifiers that we handle with all users. // identifiers that we handle with all users.
// returns the item as a Siteable model. // returns the item as a Siteable model.
func validateSite(item any) (models.Siteable, error) { func validateSite(item models.Siteable) error {
m, ok := item.(models.Siteable) id := ptr.Val(item.GetId())
if !ok {
return nil, clues.New(fmt.Sprintf("unexpected model: %T", item))
}
id := ptr.Val(m.GetId())
if len(id) == 0 { if len(id) == 0 {
return nil, clues.New("missing ID") return clues.New("missing ID")
} }
wURL := ptr.Val(m.GetWebUrl()) wURL := ptr.Val(item.GetWebUrl())
if len(wURL) == 0 { if len(wURL) == 0 {
return nil, clues.New("missing webURL").With("site_id", id) // TODO: pii return clues.New("missing webURL").With("site_id", id) // TODO: pii
} }
// personal (ie: oneDrive) sites have to be filtered out server-side. // personal (ie: oneDrive) sites have to be filtered out server-side.
if strings.Contains(wURL, personalSitePath) { if strings.Contains(wURL, personalSitePath) {
return nil, clues.Stack(errKnownSkippableCase). return clues.Stack(errKnownSkippableCase).
With("site_id", id, "site_web_url", wURL) // TODO: pii With("site_id", id, "site_web_url", wURL) // TODO: pii
} }
name := ptr.Val(m.GetDisplayName()) name := ptr.Val(item.GetDisplayName())
if len(name) == 0 { if len(name) == 0 {
// the built-in site at "https://{tenant-domain}/search" never has a name. // the built-in site at "https://{tenant-domain}/search" never has a name.
if strings.HasSuffix(wURL, "/search") { if strings.HasSuffix(wURL, "/search") {
return nil, clues.Stack(errKnownSkippableCase). return clues.Stack(errKnownSkippableCase).
With("site_id", id, "site_web_url", wURL) // TODO: pii With("site_id", id, "site_web_url", wURL) // TODO: pii
} }
return nil, clues.New("missing site display name").With("site_id", id) return clues.New("missing site display name").With("site_id", id)
} }
return m, nil return nil
} }

View File

@ -33,16 +33,10 @@ func (suite *SitesUnitSuite) TestValidateSite() {
tests := []struct { tests := []struct {
name string name string
args any args models.Siteable
want models.Siteable
errCheck assert.ErrorAssertionFunc errCheck assert.ErrorAssertionFunc
errIsSkippable bool errIsSkippable bool
}{ }{
{
name: "Invalid type",
args: string("invalid type"),
errCheck: assert.Error,
},
{ {
name: "No ID", name: "No ID",
args: models.NewSite(), args: models.NewSite(),
@ -92,7 +86,6 @@ func (suite *SitesUnitSuite) TestValidateSite() {
{ {
name: "Valid Site", name: "Valid Site",
args: site, args: site,
want: site,
errCheck: assert.NoError, errCheck: assert.NoError,
}, },
} }
@ -100,14 +93,12 @@ func (suite *SitesUnitSuite) TestValidateSite() {
suite.Run(test.name, func() { suite.Run(test.name, func() {
t := suite.T() t := suite.T()
got, err := validateSite(test.args) err := validateSite(test.args)
test.errCheck(t, err, clues.ToCore(err)) test.errCheck(t, err, clues.ToCore(err))
if test.errIsSkippable { if test.errIsSkippable {
assert.ErrorIs(t, err, errKnownSkippableCase) assert.ErrorIs(t, err, errKnownSkippableCase)
} }
assert.Equal(t, test.want, got)
}) })
} }
} }

View File

@ -171,7 +171,7 @@ func (c Users) GetAll(ctx context.Context, errs *fault.Bus) ([]models.Userable,
return nil, graph.Wrap(ctx, err, "getting all users") return nil, graph.Wrap(ctx, err, "getting all users")
} }
iter, err := msgraphgocore.NewPageIterator( iter, err := msgraphgocore.NewPageIterator[models.Userable](
resp, resp,
service.Adapter(), service.Adapter(),
models.CreateUserCollectionResponseFromDiscriminatorValue) models.CreateUserCollectionResponseFromDiscriminatorValue)
@ -184,16 +184,16 @@ func (c Users) GetAll(ctx context.Context, errs *fault.Bus) ([]models.Userable,
el = errs.Local() el = errs.Local()
) )
iterator := func(item any) bool { iterator := func(item models.Userable) bool {
if el.Failure() != nil { if el.Failure() != nil {
return false return false
} }
u, err := validateUser(item) err := validateUser(item)
if err != nil { if err != nil {
el.AddRecoverable(graph.Wrap(ctx, err, "validating user")) el.AddRecoverable(graph.Wrap(ctx, err, "validating user"))
} else { } else {
us = append(us, u) us = append(us, item)
} }
return true return true
@ -214,7 +214,7 @@ func (c Users) GetByID(ctx context.Context, identifier string) (models.Userable,
err error err error
) )
resp, err = c.stable.Client().UsersById(identifier).Get(ctx, nil) resp, err = c.stable.Client().Users().ByUserId(identifier).Get(ctx, nil)
if err != nil { if err != nil {
return nil, graph.Wrap(ctx, err, "getting user") return nil, graph.Wrap(ctx, err, "getting user")
@ -316,8 +316,10 @@ func (c Users) GetInfo(ctx context.Context, userID string) (*UserInfo, error) {
}, },
} }
_, err = c.stable.Client(). _, err = c.stable.Client().
UsersById(userID). Users().
MailFoldersById(ptr.Val(mf.GetId())). ByUserId(userID).
MailFolders().
ByMailFolderId(ptr.Val(mf.GetId())).
Messages(). Messages().
Delta(). Delta().
Get(ctx, options) Get(ctx, options)
@ -338,7 +340,7 @@ func (c Users) GetMailFolders(
userID string, userID string,
options users.ItemMailFoldersRequestBuilderGetRequestConfiguration, options users.ItemMailFoldersRequestBuilderGetRequestConfiguration,
) (models.MailFolderCollectionResponseable, error) { ) (models.MailFolderCollectionResponseable, error) {
mailFolders, err := c.stable.Client().UsersById(userID).MailFolders().Get(ctx, &options) mailFolders, err := c.stable.Client().Users().ByUserId(userID).MailFolders().Get(ctx, &options)
if err != nil { if err != nil {
return nil, graph.Wrap(ctx, err, "getting MailFolders") return nil, graph.Wrap(ctx, err, "getting MailFolders")
} }
@ -348,7 +350,7 @@ func (c Users) GetMailFolders(
// TODO: remove when drive api goes into this package // TODO: remove when drive api goes into this package
func (c Users) GetDrives(ctx context.Context, userID string) (models.DriveCollectionResponseable, error) { func (c Users) GetDrives(ctx context.Context, userID string) (models.DriveCollectionResponseable, error) {
drives, err := c.stable.Client().UsersById(userID).Drives().Get(ctx, nil) drives, err := c.stable.Client().Users().ByUserId(userID).Drives().Get(ctx, nil)
if err != nil { if err != nil {
return nil, graph.Wrap(ctx, err, "getting drives") return nil, graph.Wrap(ctx, err, "getting drives")
} }
@ -497,22 +499,16 @@ func appendIfErr(errs []error, err error) []error {
// validateUser ensures the item is a Userable, and contains the necessary // validateUser ensures the item is a Userable, and contains the necessary
// identifiers that we handle with all users. // identifiers that we handle with all users.
// returns the item as a Userable model. func validateUser(item models.Userable) error {
func validateUser(item any) (models.Userable, error) { if item.GetId() == nil {
m, ok := item.(models.Userable) return clues.New("missing ID")
if !ok {
return nil, clues.New(fmt.Sprintf("unexpected model: %T", item))
} }
if m.GetId() == nil { if item.GetUserPrincipalName() == nil {
return nil, clues.New("missing ID") return clues.New("missing principalName")
} }
if m.GetUserPrincipalName() == nil { return nil
return nil, clues.New("missing principalName")
}
return m, nil
} }
func toString(ctx context.Context, key string, data map[string]any) (string, error) { func toString(ctx context.Context, key string, data map[string]any) (string, error) {

View File

@ -30,15 +30,9 @@ func (suite *UsersUnitSuite) TestValidateUser() {
tests := []struct { tests := []struct {
name string name string
args interface{} args models.Userable
want models.Userable
errCheck assert.ErrorAssertionFunc errCheck assert.ErrorAssertionFunc
}{ }{
{
name: "Invalid type",
args: string("invalid type"),
errCheck: assert.Error,
},
{ {
name: "No ID", name: "No ID",
args: models.NewUser(), args: models.NewUser(),
@ -56,7 +50,6 @@ func (suite *UsersUnitSuite) TestValidateUser() {
{ {
name: "Valid User", name: "Valid User",
args: user, args: user,
want: user,
errCheck: assert.NoError, errCheck: assert.NoError,
}, },
} }
@ -64,10 +57,8 @@ func (suite *UsersUnitSuite) TestValidateUser() {
suite.Run(tt.name, func() { suite.Run(tt.name, func() {
t := suite.T() t := suite.T()
got, err := validateUser(tt.args) err := validateUser(tt.args)
tt.errCheck(t, err, clues.ToCore(err)) tt.errCheck(t, err, clues.ToCore(err))
assert.Equal(t, tt.want, got)
}) })
} }
} }