## Description - Adds accessor methods for size/modified - Do not initialize folder in test with a modified time ## Does this PR need a docs update or release note? - [x] ✅ Yes, it's included - [ ] 🕐 Yes, but in a later PR - [ ] ⛔ No ## Type of change <!--- Please check the type of change your PR introduces: ---> - [ ] 🌻 Feature - [ ] 🐛 Bugfix - [ ] 🗺️ Documentation - [ ] 🤖 Test - [ ] 💻 CI/Deployment - [x] 🐹 Trivial/Minor ## Test Plan <!-- How will this be tested prior to merging.--> - [ ] 💪 Manual - [x] ⚡ Unit test - [ ] 💚 E2E
This commit is contained in:
parent
8fa440e277
commit
3141b181b6
@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Folder entries in backup details now include size and modified time for the hierarchy (#1896)
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- **Breaking Change**:
|
- **Breaking Change**:
|
||||||
|
|||||||
@ -145,26 +145,9 @@ func (b *Builder) AddFoldersForItem(folders []FolderEntry, itemInfo ItemInfo) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Update the folder's size and modified time
|
// Update the folder's size and modified time
|
||||||
var (
|
itemModified := itemInfo.modified()
|
||||||
itemSize int64
|
|
||||||
itemModified time.Time
|
|
||||||
)
|
|
||||||
|
|
||||||
switch {
|
folder.Info.Folder.Size += itemInfo.size()
|
||||||
case itemInfo.Exchange != nil:
|
|
||||||
itemSize = itemInfo.Exchange.Size
|
|
||||||
itemModified = itemInfo.Exchange.Modified
|
|
||||||
|
|
||||||
case itemInfo.OneDrive != nil:
|
|
||||||
itemSize = itemInfo.OneDrive.Size
|
|
||||||
itemModified = itemInfo.OneDrive.Modified
|
|
||||||
|
|
||||||
case itemInfo.SharePoint != nil:
|
|
||||||
itemSize = itemInfo.SharePoint.Size
|
|
||||||
itemModified = itemInfo.SharePoint.Modified
|
|
||||||
}
|
|
||||||
|
|
||||||
folder.Info.Folder.Size += itemSize
|
|
||||||
|
|
||||||
if folder.Info.Folder.Modified.Before(itemModified) {
|
if folder.Info.Folder.Modified.Before(itemModified) {
|
||||||
folder.Info.Folder.Modified = itemModified
|
folder.Info.Folder.Modified = itemModified
|
||||||
@ -346,6 +329,42 @@ func (i ItemInfo) infoType() ItemType {
|
|||||||
return UnknownType
|
return UnknownType
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (i ItemInfo) size() int64 {
|
||||||
|
switch {
|
||||||
|
case i.Exchange != nil:
|
||||||
|
return i.Exchange.Size
|
||||||
|
|
||||||
|
case i.OneDrive != nil:
|
||||||
|
return i.OneDrive.Size
|
||||||
|
|
||||||
|
case i.SharePoint != nil:
|
||||||
|
return i.SharePoint.Size
|
||||||
|
|
||||||
|
case i.Folder != nil:
|
||||||
|
return i.Folder.Size
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i ItemInfo) modified() time.Time {
|
||||||
|
switch {
|
||||||
|
case i.Exchange != nil:
|
||||||
|
return i.Exchange.Modified
|
||||||
|
|
||||||
|
case i.OneDrive != nil:
|
||||||
|
return i.OneDrive.Modified
|
||||||
|
|
||||||
|
case i.SharePoint != nil:
|
||||||
|
return i.SharePoint.Modified
|
||||||
|
|
||||||
|
case i.Folder != nil:
|
||||||
|
return i.Folder.Modified
|
||||||
|
}
|
||||||
|
|
||||||
|
return time.Time{}
|
||||||
|
}
|
||||||
|
|
||||||
type FolderInfo struct {
|
type FolderInfo struct {
|
||||||
ItemType ItemType `json:"itemType,omitempty"`
|
ItemType ItemType `json:"itemType,omitempty"`
|
||||||
DisplayName string `json:"displayName"`
|
DisplayName string `json:"displayName"`
|
||||||
|
|||||||
@ -341,7 +341,6 @@ func (suite *DetailsUnitSuite) TestDetails_AddFolders() {
|
|||||||
|
|
||||||
func (suite *DetailsUnitSuite) TestDetails_AddFoldersDifferentServices() {
|
func (suite *DetailsUnitSuite) TestDetails_AddFoldersDifferentServices() {
|
||||||
itemTime := time.Date(2022, 10, 21, 10, 0, 0, 0, time.UTC)
|
itemTime := time.Date(2022, 10, 21, 10, 0, 0, 0, time.UTC)
|
||||||
folderTimeOlderThanItem := time.Date(2022, 9, 21, 10, 0, 0, 0, time.UTC)
|
|
||||||
|
|
||||||
table := []struct {
|
table := []struct {
|
||||||
name string
|
name string
|
||||||
@ -395,9 +394,7 @@ func (suite *DetailsUnitSuite) TestDetails_AddFoldersDifferentServices() {
|
|||||||
ShortRef: "sr1",
|
ShortRef: "sr1",
|
||||||
ParentRef: "pr1",
|
ParentRef: "pr1",
|
||||||
Info: details.ItemInfo{
|
Info: details.ItemInfo{
|
||||||
Folder: &details.FolderInfo{
|
Folder: &details.FolderInfo{},
|
||||||
Modified: folderTimeOlderThanItem,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user