Store/Retrieve owner info for OneDrive files (#1436)

## Description

Store and retrieve owner info for onedrive files.

## Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Test
- [ ] 💻 CI/Deployment
- [ ] 🐹 Trivial/Minor

## Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* https://github.com/alcionai/corso/issues/1366

## Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x]  Unit test
- [x] 💚 E2E
This commit is contained in:
Abin Simon 2022-11-04 12:31:45 +05:30 committed by GitHub
parent 25277417db
commit 935fe5cbec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 23 additions and 7 deletions

View File

@ -67,12 +67,20 @@ func driveItemReader(
// doesn't have its size value updated as a side effect of creation, // doesn't have its size value updated as a side effect of creation,
// and kiota drops any SetSize update. // and kiota drops any SetSize update.
func driveItemInfo(di models.DriveItemable, itemSize int64) *details.OneDriveInfo { func driveItemInfo(di models.DriveItemable, itemSize int64) *details.OneDriveInfo {
ed, ok := di.GetCreatedBy().GetUser().GetAdditionalData()["email"]
email := ""
if ok {
email = *ed.(*string)
}
return &details.OneDriveInfo{ return &details.OneDriveInfo{
ItemType: details.OneDriveItem, ItemType: details.OneDriveItem,
ItemName: *di.GetName(), ItemName: *di.GetName(),
Created: *di.GetCreatedDateTime(), Created: *di.GetCreatedDateTime(),
Modified: *di.GetLastModifiedDateTime(), Modified: *di.GetLastModifiedDateTime(),
Size: itemSize, Size: itemSize,
Owner: email,
} }
} }

View File

@ -367,6 +367,7 @@ type OneDriveInfo struct {
ParentPath string `json:"parentPath"` ParentPath string `json:"parentPath"`
ItemName string `json:"itemName"` ItemName string `json:"itemName"`
Size int64 `json:"size,omitempty"` Size int64 `json:"size,omitempty"`
Owner string `json:"owner,omitempty"`
Created time.Time `json:"created,omitempty"` Created time.Time `json:"created,omitempty"`
Modified time.Time `json:"modified,omitempty"` Modified time.Time `json:"modified,omitempty"`
} }
@ -374,14 +375,14 @@ type OneDriveInfo struct {
// Headers returns the human-readable names of properties in a OneDriveInfo // Headers returns the human-readable names of properties in a OneDriveInfo
// for printing out to a terminal in a columnar display. // for printing out to a terminal in a columnar display.
func (i OneDriveInfo) Headers() []string { func (i OneDriveInfo) Headers() []string {
return []string{"ItemName", "ParentPath", "Size", "Created", "Modified"} return []string{"ItemName", "ParentPath", "Size", "Owner", "Created", "Modified"}
} }
// Values returns the values matching the Headers list for printing // Values returns the values matching the Headers list for printing
// out to a terminal in a columnar display. // out to a terminal in a columnar display.
func (i OneDriveInfo) Values() []string { func (i OneDriveInfo) Values() []string {
return []string{ return []string{
i.ItemName, i.ParentPath, humanize.Bytes(uint64(i.Size)), i.ItemName, i.ParentPath, humanize.Bytes(uint64(i.Size)), i.Owner,
common.FormatTabularDisplayTime(i.Created), common.FormatTabularDisplayTime(i.Modified), common.FormatTabularDisplayTime(i.Created), common.FormatTabularDisplayTime(i.Modified),
} }
} }

View File

@ -115,13 +115,14 @@ func (suite *DetailsUnitSuite) TestDetailsEntry_HeadersValues() {
ItemName: "itemName", ItemName: "itemName",
ParentPath: "parentPath", ParentPath: "parentPath",
Size: 1000, Size: 1000,
Owner: "user@email.com",
Created: now, Created: now,
Modified: now, Modified: now,
}, },
}, },
}, },
expectHs: []string{"ID", "ItemName", "ParentPath", "Size", "Created", "Modified"}, expectHs: []string{"ID", "ItemName", "ParentPath", "Size", "Owner", "Created", "Modified"},
expectVs: []string{"deadbeef", "itemName", "parentPath", "1.0 kB", nowStr, nowStr}, expectVs: []string{"deadbeef", "itemName", "parentPath", "1.0 kB", "user@email.com", nowStr, nowStr},
}, },
} }

View File

@ -304,6 +304,7 @@ func (suite *OneDriveSelectorSuite) TestOneDriveScope_MatchesInfo() {
ParentPath: "folder1/folder2", ParentPath: "folder1/folder2",
ItemName: "file1", ItemName: "file1",
Size: 10, Size: 10,
Owner: "user@email.com",
Created: now, Created: now,
Modified: now, Modified: now,
}, },

View File

@ -34,9 +34,11 @@ func mustAppendPath(p path.Path, newElement string, isItem bool) path.Path {
} }
const ( const (
ItemName1 = "item1" ItemName1 = "item1"
ItemName2 = "item2" ItemName2 = "item2"
ItemName3 = "item3" ItemName3 = "item3"
UserEmail1 = "user1@email.com"
UserEmail2 = "user2@email.com"
) )
var ( var (
@ -187,6 +189,7 @@ var (
ParentPath: OneDriveFolderFolder, ParentPath: OneDriveFolderFolder,
ItemName: OneDriveItemPath1.Item() + "name", ItemName: OneDriveItemPath1.Item() + "name",
Size: int64(23), Size: int64(23),
Owner: UserEmail1,
Created: Time2, Created: Time2,
Modified: Time4, Modified: Time4,
}, },
@ -202,6 +205,7 @@ var (
ParentPath: OneDriveParentFolder1, ParentPath: OneDriveParentFolder1,
ItemName: OneDriveItemPath2.Item() + "name", ItemName: OneDriveItemPath2.Item() + "name",
Size: int64(42), Size: int64(42),
Owner: UserEmail1,
Created: Time1, Created: Time1,
Modified: Time3, Modified: Time3,
}, },
@ -217,6 +221,7 @@ var (
ParentPath: OneDriveParentFolder2, ParentPath: OneDriveParentFolder2,
ItemName: OneDriveItemPath3.Item() + "name", ItemName: OneDriveItemPath3.Item() + "name",
Size: int64(19), Size: int64(19),
Owner: UserEmail2,
Created: Time2, Created: Time2,
Modified: Time4, Modified: Time4,
}, },