diff --git a/src/internal/connector/sharepoint/api/pages.go b/src/internal/connector/sharepoint/api/pages.go index 00bd87a26..dcffa1dcf 100644 --- a/src/internal/connector/sharepoint/api/pages.go +++ b/src/internal/connector/sharepoint/api/pages.go @@ -263,7 +263,7 @@ func PageInfo(page models.SitePageable, size int64) *details.SharePointInfo { ) return &details.SharePointInfo{ - ItemType: details.SharePointItem, + ItemType: details.SharePointPage, ItemName: name, Created: created, Modified: modified, diff --git a/src/internal/connector/sharepoint/listInfo.go b/src/internal/connector/sharepoint/listInfo.go index 7eb0dc8a1..62101b584 100644 --- a/src/internal/connector/sharepoint/listInfo.go +++ b/src/internal/connector/sharepoint/listInfo.go @@ -18,7 +18,7 @@ func sharePointListInfo(lst models.Listable, size int64) *details.SharePointInfo ) return &details.SharePointInfo{ - ItemType: details.SharePointItem, + ItemType: details.SharePointList, ItemName: name, Created: created, Modified: modified, diff --git a/src/internal/connector/sharepoint/listInfo_test.go b/src/internal/connector/sharepoint/listInfo_test.go index 697ce007a..a4467450f 100644 --- a/src/internal/connector/sharepoint/listInfo_test.go +++ b/src/internal/connector/sharepoint/listInfo_test.go @@ -27,7 +27,7 @@ func (suite *SharePointInfoSuite) TestSharePointInfo() { { name: "Empty List", listAndDeets: func() (models.Listable, *details.SharePointInfo) { - i := &details.SharePointInfo{ItemType: details.SharePointItem} + i := &details.SharePointInfo{ItemType: details.SharePointList} return models.NewList(), i }, }, { @@ -37,7 +37,7 @@ func (suite *SharePointInfoSuite) TestSharePointInfo() { listing := models.NewList() listing.SetDisplayName(&aTitle) i := &details.SharePointInfo{ - ItemType: details.SharePointItem, + ItemType: details.SharePointList, ItemName: aTitle, } diff --git a/src/internal/connector/sharepoint/pageInfo.go b/src/internal/connector/sharepoint/pageInfo.go index 2990f31f7..81e2221bf 100644 --- a/src/internal/connector/sharepoint/pageInfo.go +++ b/src/internal/connector/sharepoint/pageInfo.go @@ -37,7 +37,7 @@ func sharePointPageInfo(page models.SitePageable, root string, size int64) *deta } return &details.SharePointInfo{ - ItemType: details.SharePointItem, + ItemType: details.SharePointPage, ItemName: name, ParentPath: root, Created: created, diff --git a/src/internal/connector/sharepoint/pageInfo_test.go b/src/internal/connector/sharepoint/pageInfo_test.go index 8bd563a0c..d05d30a24 100644 --- a/src/internal/connector/sharepoint/pageInfo_test.go +++ b/src/internal/connector/sharepoint/pageInfo_test.go @@ -17,7 +17,7 @@ func (suite *SharePointInfoSuite) TestSharePointInfo_Pages() { { name: "Empty Page", pageAndDeets: func() (models.SitePageable, *details.SharePointInfo) { - deets := &details.SharePointInfo{ItemType: details.SharePointItem} + deets := &details.SharePointInfo{ItemType: details.SharePointPage} return models.NewSitePage(), deets }, }, @@ -28,7 +28,7 @@ func (suite *SharePointInfoSuite) TestSharePointInfo_Pages() { sPage := models.NewSitePage() sPage.SetTitle(&title) deets := &details.SharePointInfo{ - ItemType: details.SharePointItem, + ItemType: details.SharePointPage, ItemName: title, } diff --git a/src/pkg/backup/details/details.go b/src/pkg/backup/details/details.go index 152a03311..1f8072844 100644 --- a/src/pkg/backup/details/details.go +++ b/src/pkg/backup/details/details.go @@ -409,19 +409,32 @@ func (de DetailsEntry) Values() []string { type ItemType int +// ItemTypes are enumerated by service (hundredth digit) and data type (ones digit). +// Ex: exchange is 00x where x is the data type. Sharepoint is 10x, and etc. +// Every item info struct should get its own hundredth enumeration entry. +// Every item category for that service should get its own entry (even if differences +// between types aren't apparent on initial implementation, this future-proofs +// against breaking changes). +// Entries should not be rearranged. +// Additionally, any itemType directly assigned a number should not be altered. +// This applies to OneDriveItem and FolderItem const ( - UnknownType ItemType = iota + UnknownType ItemType = iota // 0, global unknown value - // separate each service by a factor of 100 for padding + // Exchange (00x) ExchangeContact ExchangeEvent ExchangeMail + // SharePoint (10x) + SharePointLibrary ItemType = iota + 97 // 100 + SharePointList // 101... + SharePointPage - SharePointItem ItemType = iota + 100 + // OneDrive (20x) + OneDriveItem ItemType = 205 - OneDriveItem ItemType = iota + 200 - - FolderItem ItemType = iota + 300 + // Folder Management(30x) + FolderItem ItemType = 306 ) func UpdateItem(item *ItemInfo, repoPath path.Path) error { @@ -430,7 +443,7 @@ func UpdateItem(item *ItemInfo, repoPath path.Path) error { var updatePath func(path.Path) error switch item.infoType() { - case SharePointItem: + case SharePointLibrary: updatePath = item.SharePoint.UpdateParentPath case OneDriveItem: updatePath = item.OneDrive.UpdateParentPath diff --git a/src/pkg/backup/details/details_test.go b/src/pkg/backup/details/details_test.go index 52eddfe04..a2dca3492 100644 --- a/src/pkg/backup/details/details_test.go +++ b/src/pkg/backup/details/details_test.go @@ -782,7 +782,7 @@ func (suite *DetailsUnitSuite) TestUpdateItem() { name: "SharePoint", input: ItemInfo{ SharePoint: &SharePointInfo{ - ItemType: SharePointItem, + ItemType: SharePointLibrary, ParentPath: folder1, }, }, @@ -791,7 +791,7 @@ func (suite *DetailsUnitSuite) TestUpdateItem() { errCheck: assert.NoError, expectedItem: ItemInfo{ SharePoint: &SharePointInfo{ - ItemType: SharePointItem, + ItemType: SharePointLibrary, ParentPath: folder2, }, }, @@ -812,7 +812,7 @@ func (suite *DetailsUnitSuite) TestUpdateItem() { name: "SharePointBadPath", input: ItemInfo{ SharePoint: &SharePointInfo{ - ItemType: SharePointItem, + ItemType: SharePointLibrary, ParentPath: folder1, }, }, diff --git a/src/pkg/selectors/sharepoint_test.go b/src/pkg/selectors/sharepoint_test.go index ffc7a9ec8..72d1a241c 100644 --- a/src/pkg/selectors/sharepoint_test.go +++ b/src/pkg/selectors/sharepoint_test.go @@ -214,7 +214,7 @@ func (suite *SharePointSelectorSuite) TestSharePointRestore_Reduce() { RepoRef: item, ItemInfo: details.ItemInfo{ SharePoint: &details.SharePointInfo{ - ItemType: details.SharePointItem, + ItemType: details.SharePointLibrary, }, }, }, @@ -222,7 +222,7 @@ func (suite *SharePointSelectorSuite) TestSharePointRestore_Reduce() { RepoRef: item2, ItemInfo: details.ItemInfo{ SharePoint: &details.SharePointInfo{ - ItemType: details.SharePointItem, + ItemType: details.SharePointLibrary, }, }, }, @@ -230,7 +230,7 @@ func (suite *SharePointSelectorSuite) TestSharePointRestore_Reduce() { RepoRef: item3, ItemInfo: details.ItemInfo{ SharePoint: &details.SharePointInfo{ - ItemType: details.SharePointItem, + ItemType: details.SharePointLibrary, }, }, }, @@ -238,7 +238,7 @@ func (suite *SharePointSelectorSuite) TestSharePointRestore_Reduce() { RepoRef: item4, ItemInfo: details.ItemInfo{ SharePoint: &details.SharePointInfo{ - ItemType: details.SharePointItem, + ItemType: details.SharePointPage, }, }, }, @@ -246,7 +246,7 @@ func (suite *SharePointSelectorSuite) TestSharePointRestore_Reduce() { RepoRef: item5, ItemInfo: details.ItemInfo{ SharePoint: &details.SharePointInfo{ - ItemType: details.SharePointItem, + ItemType: details.SharePointPage, }, }, }, @@ -416,7 +416,7 @@ func (suite *SharePointSelectorSuite) TestSharePointScope_MatchesInfo() { itemInfo := details.ItemInfo{ SharePoint: &details.SharePointInfo{ - ItemType: details.SharePointItem, + ItemType: details.SharePointPage, WebURL: test.infoURL, Created: now, Modified: modification, diff --git a/src/pkg/selectors/testdata/details.go b/src/pkg/selectors/testdata/details.go index 6243cfaab..763080c41 100644 --- a/src/pkg/selectors/testdata/details.go +++ b/src/pkg/selectors/testdata/details.go @@ -249,7 +249,7 @@ var ( ParentRef: SharePointLibraryItemPath1.ToBuilder().Dir().ShortRef(), ItemInfo: details.ItemInfo{ SharePoint: &details.SharePointInfo{ - ItemType: details.SharePointItem, + ItemType: details.SharePointLibrary, ParentPath: SharePointLibraryFolder, ItemName: SharePointLibraryItemPath1.Item() + "name", Size: int64(23), @@ -265,7 +265,7 @@ var ( ParentRef: SharePointLibraryItemPath2.ToBuilder().Dir().ShortRef(), ItemInfo: details.ItemInfo{ SharePoint: &details.SharePointInfo{ - ItemType: details.SharePointItem, + ItemType: details.SharePointLibrary, ParentPath: SharePointParentLibrary1, ItemName: SharePointLibraryItemPath2.Item() + "name", Size: int64(42), @@ -281,7 +281,7 @@ var ( ParentRef: SharePointLibraryItemPath3.ToBuilder().Dir().ShortRef(), ItemInfo: details.ItemInfo{ SharePoint: &details.SharePointInfo{ - ItemType: details.SharePointItem, + ItemType: details.SharePointLibrary, ParentPath: SharePointParentLibrary2, ItemName: SharePointLibraryItemPath3.Item() + "name", Size: int64(19),