add a BuildMetadata func to path package (#4192)

just a QoL shorthand to match the Build func.

---

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

- [x]  No

#### Type of change

- [x] 🧹 Tech Debt/Cleanup

#### Test Plan

- [x]  Unit test
- [=x] 💚 E2E
This commit is contained in:
Keepers 2023-09-07 13:05:58 -06:00 committed by GitHub
parent c74585eafc
commit bf02f57527
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 48 additions and 35 deletions

View File

@ -1129,7 +1129,7 @@ func (suite *OneDriveCollectionsUnitSuite) TestDeserializeMetadata() {
cols := []data.RestoreCollection{}
for _, c := range test.cols {
pathPrefix, err := path.Builder{}.ToServiceCategoryMetadataPath(
pathPrefix, err := path.BuildMetadata(
tenant,
user,
path.OneDriveService,
@ -1194,7 +1194,7 @@ func (suite *OneDriveCollectionsUnitSuite) TestGet() {
delta2 = "delta2"
)
metadataPath, err := path.Builder{}.ToServiceCategoryMetadataPath(
metadataPath, err := path.BuildMetadata(
tenant,
user,
path.OneDriveService,

View File

@ -53,7 +53,7 @@ func (h groupBackupHandler) PathPrefix(
}
func (h groupBackupHandler) MetadataPathPrefix(tenantID string) (path.Path, error) {
p, err := path.Builder{}.ToServiceCategoryMetadataPath(
p, err := path.BuildMetadata(
tenantID,
h.groupID,
h.service,

View File

@ -57,7 +57,7 @@ func (h itemBackupHandler) PathPrefix(
func (h itemBackupHandler) MetadataPathPrefix(
tenantID string,
) (path.Path, error) {
p, err := path.Builder{}.ToServiceCategoryMetadataPath(
p, err := path.BuildMetadata(
tenantID,
h.userID,
path.OneDriveService,

View File

@ -61,7 +61,7 @@ func (h libraryBackupHandler) PathPrefix(
func (h libraryBackupHandler) MetadataPathPrefix(
tenantID string,
) (path.Path, error) {
p, err := path.Builder{}.ToServiceCategoryMetadataPath(
p, err := path.BuildMetadata(
tenantID,
h.siteID,
h.service,

View File

@ -267,7 +267,7 @@ func populateCollections(
"num_paths_entries", len(currPaths),
"num_deltas_entries", len(deltaURLs))
pathPrefix, err := path.Builder{}.ToServiceCategoryMetadataPath(
pathPrefix, err := path.BuildMetadata(
qp.TenantID,
qp.ProtectedResource.ID(),
path.ExchangeService,

View File

@ -299,7 +299,7 @@ func (suite *DataCollectionsUnitSuite) TestParseMetadataCollections() {
graph.NewMetadataEntry(d.fileName, map[string]string{"key": d.value}))
}
pathPrefix, err := path.Builder{}.ToServiceCategoryMetadataPath(
pathPrefix, err := path.BuildMetadata(
"t", "u",
path.ExchangeService,
path.EmailCategory,

View File

@ -165,7 +165,7 @@ func (suite *MetadataCollectionUnitSuite) TestMakeMetadataCollection() {
ctx, flush := tester.NewContext(t)
defer flush()
pathPrefix, err := path.Builder{}.ToServiceCategoryMetadataPath(
pathPrefix, err := path.BuildMetadata(
tenant,
user,
test.service,

View File

@ -191,7 +191,7 @@ var defaultOneDrivePathPrefixer = func(tID, ro, driveID string) (path.Path, erro
}
var defaultOneDriveMetadataPathPrefixer = func(tID, ro string) (path.Path, error) {
return path.Builder{}.ToServiceCategoryMetadataPath(
return path.BuildMetadata(
tID,
ro,
path.OneDriveService,
@ -212,7 +212,7 @@ var defaultSharePointPathPrefixer = func(tID, ro, driveID string) (path.Path, er
}
var defaultSharePointMetadataPathPrefixer = func(tID, ro string) (path.Path, error) {
return path.Builder{}.ToServiceCategoryMetadataPath(
return path.BuildMetadata(
tID,
ro,
path.SharePointService,

View File

@ -218,7 +218,7 @@ func makeMetadataBasePath(
) path.Path {
t.Helper()
p, err := path.Builder{}.ToServiceCategoryMetadataPath(
p, err := path.BuildMetadata(
tenant,
resourceOwner,
service,
@ -1871,7 +1871,7 @@ func (suite *AssistBackupIntegrationSuite) TestBackupTypesForFailureModes() {
cs := test.collFunc()
pathPrefix, err := path.Builder{}.ToServiceCategoryMetadataPath(
pathPrefix, err := path.BuildMetadata(
tenantID,
userID,
path.OneDriveService,
@ -2189,7 +2189,7 @@ func (suite *AssistBackupIntegrationSuite) TestExtensionsIncrementals() {
cs := test.collFunc()
pathPrefix, err := path.Builder{}.ToServiceCategoryMetadataPath(
pathPrefix, err := path.BuildMetadata(
tenantID,
userID,
path.OneDriveService,

View File

@ -141,14 +141,13 @@ func collectMetadata(
for _, fn := range fileNames {
for _, reason := range man.Reasons {
p, err := path.Builder{}.
Append(fn).
ToServiceCategoryMetadataPath(
tenantID,
reason.ProtectedResource(),
reason.Service(),
reason.Category(),
true)
p, err := path.BuildMetadata(
tenantID,
reason.ProtectedResource(),
reason.Service(),
reason.Category(),
true,
fn)
if err != nil {
return nil, clues.
Wrap(err, "building metadata path").

View File

@ -286,9 +286,7 @@ func checkMetadataFilesExist(
pathsByRef := map[string][]string{}
for _, fName := range files {
p, err := path.Builder{}.
Append(fName).
ToServiceCategoryMetadataPath(tenant, resourceOwner, service, category, true)
p, err := path.BuildMetadata(tenant, resourceOwner, service, category, true, fName)
if !assert.NoError(t, err, "bad metadata path", clues.ToCore(err)) {
continue
}

View File

@ -258,7 +258,7 @@ func (pb Builder) ToStreamStorePath(
}
func (pb Builder) ToServiceCategoryMetadataPath(
tenant, user string,
tenant, protectedResource string,
service ServiceType,
category CategoryType,
isItem bool,
@ -267,7 +267,7 @@ func (pb Builder) ToServiceCategoryMetadataPath(
return nil, err
}
if err := verifyInputValues(tenant, user); err != nil {
if err := verifyInputValues(tenant, protectedResource); err != nil {
return nil, err
}
@ -288,17 +288,18 @@ func (pb Builder) ToServiceCategoryMetadataPath(
metadataService = GroupsMetadataService
}
return &dataLayerResourcePath{
rp := dataLayerResourcePath{
Builder: *pb.withPrefix(
tenant,
metadataService.String(),
user,
category.String(),
),
protectedResource,
category.String()),
service: metadataService,
category: category,
hasItem: isItem,
}, nil
}
return &rp, nil
}
func (pb Builder) ToDataLayerPath(

View File

@ -146,6 +146,22 @@ func Build(
hasItem)
}
// BuildMetadata is a shorthand for Builder{}.Append(...).ToServiceCategoryMetadataPath(...)
func BuildMetadata(
tenant, resourceOwner string,
service ServiceType,
category CategoryType,
hasItem bool,
elements ...string,
) (Path, error) {
return Builder{}.
Append(elements...).
ToServiceCategoryMetadataPath(
tenant, resourceOwner,
service, category,
hasItem)
}
func BuildPrefix(
tenant, resourceOwner string,
s ServiceType,

View File

@ -344,14 +344,13 @@ func (suite *DataLayerResourcePath) TestToServiceCategoryMetadataPath() {
test.category.String(),
}, "_"), func() {
t := suite.T()
pb := path.Builder{}.Append(test.postfix...)
p, err := pb.ToServiceCategoryMetadataPath(
p, err := path.BuildMetadata(
tenant,
user,
test.service,
test.category,
false)
false,
test.postfix...)
test.check(t, err, clues.ToCore(err))
if err != nil {