## 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]
|
||||
|
||||
### Added
|
||||
|
||||
- Folder entries in backup details now include size and modified time for the hierarchy (#1896)
|
||||
|
||||
### Changed
|
||||
|
||||
- **Breaking Change**:
|
||||
|
||||
@ -145,26 +145,9 @@ func (b *Builder) AddFoldersForItem(folders []FolderEntry, itemInfo ItemInfo) {
|
||||
}
|
||||
|
||||
// Update the folder's size and modified time
|
||||
var (
|
||||
itemSize int64
|
||||
itemModified time.Time
|
||||
)
|
||||
itemModified := itemInfo.modified()
|
||||
|
||||
switch {
|
||||
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
|
||||
folder.Info.Folder.Size += itemInfo.size()
|
||||
|
||||
if folder.Info.Folder.Modified.Before(itemModified) {
|
||||
folder.Info.Folder.Modified = itemModified
|
||||
@ -346,6 +329,42 @@ func (i ItemInfo) infoType() ItemType {
|
||||
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 {
|
||||
ItemType ItemType `json:"itemType,omitempty"`
|
||||
DisplayName string `json:"displayName"`
|
||||
|
||||
@ -341,7 +341,6 @@ func (suite *DetailsUnitSuite) TestDetails_AddFolders() {
|
||||
|
||||
func (suite *DetailsUnitSuite) TestDetails_AddFoldersDifferentServices() {
|
||||
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 {
|
||||
name string
|
||||
@ -395,9 +394,7 @@ func (suite *DetailsUnitSuite) TestDetails_AddFoldersDifferentServices() {
|
||||
ShortRef: "sr1",
|
||||
ParentRef: "pr1",
|
||||
Info: details.ItemInfo{
|
||||
Folder: &details.FolderInfo{
|
||||
Modified: folderTimeOlderThanItem,
|
||||
},
|
||||
Folder: &details.FolderInfo{},
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user