clone strings to lose references to in mem stores
This commit is contained in:
parent
178ae0d465
commit
05dee79560
@ -1,6 +1,7 @@
|
|||||||
package drive
|
package drive
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/alcionai/corso/src/internal/common/ptr"
|
"github.com/alcionai/corso/src/internal/common/ptr"
|
||||||
@ -26,8 +27,6 @@ type CorsoDriveItemable interface {
|
|||||||
GetMalware() malwareable
|
GetMalware() malwareable
|
||||||
GetDeleted() deletedable
|
GetDeleted() deletedable
|
||||||
GetRoot() itemRootable
|
GetRoot() itemRootable
|
||||||
// Not used anywhere
|
|
||||||
//GetSharepointIds() sharepointIdsable
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type fileDriveItemable interface {
|
type fileDriveItemable interface {
|
||||||
@ -208,15 +207,11 @@ func (c *CorsoDriveItem) GetRoot() itemRootable {
|
|||||||
return c.Root
|
return c.Root
|
||||||
}
|
}
|
||||||
|
|
||||||
// func (c *CorsoDriveItem) GetSharepointIds() sharepointIdsable {
|
|
||||||
// return nil
|
|
||||||
// }
|
|
||||||
|
|
||||||
// models.DriveItemable to CorsoDriveItemable
|
// models.DriveItemable to CorsoDriveItemable
|
||||||
func ToCorsoDriveItemable(item models.DriveItemable) CorsoDriveItemable {
|
func ToCorsoDriveItemable(item models.DriveItemable) CorsoDriveItemable {
|
||||||
cdi := &CorsoDriveItem{
|
cdi := &CorsoDriveItem{
|
||||||
ID: ptr.Val(item.GetId()),
|
ID: strings.Clone(ptr.Val(item.GetId())),
|
||||||
Name: ptr.Val(item.GetName()),
|
Name: strings.Clone(ptr.Val(item.GetName())),
|
||||||
Size: ptr.Val(item.GetSize()),
|
Size: ptr.Val(item.GetSize()),
|
||||||
CreatedDateTime: ptr.Val(item.GetCreatedDateTime()),
|
CreatedDateTime: ptr.Val(item.GetCreatedDateTime()),
|
||||||
LastModifiedDateTime: ptr.Val(item.GetLastModifiedDateTime()),
|
LastModifiedDateTime: ptr.Val(item.GetLastModifiedDateTime()),
|
||||||
@ -229,7 +224,7 @@ func ToCorsoDriveItemable(item models.DriveItemable) CorsoDriveItemable {
|
|||||||
ad := make(map[string]interface{})
|
ad := make(map[string]interface{})
|
||||||
for _, key := range downloadURLKeys {
|
for _, key := range downloadURLKeys {
|
||||||
if v, err := str.AnyValueToString(key, item.GetAdditionalData()); err == nil {
|
if v, err := str.AnyValueToString(key, item.GetAdditionalData()); err == nil {
|
||||||
ad[key] = v
|
ad[key] = strings.Clone(v)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -246,7 +241,7 @@ func ToCorsoDriveItemable(item models.DriveItemable) CorsoDriveItemable {
|
|||||||
if item.GetFile() != nil {
|
if item.GetFile() != nil {
|
||||||
cdi.File = &fileDriveItem{
|
cdi.File = &fileDriveItem{
|
||||||
isFile: true,
|
isFile: true,
|
||||||
mimeType: ptr.Val(item.GetFile().GetMimeType()),
|
mimeType: strings.Clone(ptr.Val(item.GetFile().GetMimeType())),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -258,10 +253,10 @@ func ToCorsoDriveItemable(item models.DriveItemable) CorsoDriveItemable {
|
|||||||
|
|
||||||
if item.GetParentReference() != nil {
|
if item.GetParentReference() != nil {
|
||||||
cdi.ParentReference = &parentReference{
|
cdi.ParentReference = &parentReference{
|
||||||
id: ptr.Val(item.GetParentReference().GetId()),
|
id: strings.Clone(ptr.Val(item.GetParentReference().GetId())),
|
||||||
path: ptr.Val(item.GetParentReference().GetPath()),
|
path: strings.Clone(ptr.Val(item.GetParentReference().GetPath())),
|
||||||
name: ptr.Val(item.GetParentReference().GetName()),
|
name: strings.Clone(ptr.Val(item.GetParentReference().GetName())),
|
||||||
driveId: ptr.Val(item.GetParentReference().GetDriveId()),
|
driveId: strings.Clone(ptr.Val(item.GetParentReference().GetDriveId())),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -296,10 +291,10 @@ func ToCorsoDriveItemable(item models.DriveItemable) CorsoDriveItemable {
|
|||||||
|
|
||||||
ed, ok := additionalData["email"]
|
ed, ok := additionalData["email"]
|
||||||
if ok {
|
if ok {
|
||||||
str = ptr.Val(ed.(*string))
|
str = strings.Clone(ptr.Val(ed.(*string)))
|
||||||
ad["email"] = &str
|
ad["email"] = &str
|
||||||
} else if ed, ok = additionalData["displayName"]; ok {
|
} else if ed, ok = additionalData["displayName"]; ok {
|
||||||
str = ptr.Val(ed.(*string))
|
str = strings.Clone(ptr.Val(ed.(*string)))
|
||||||
ad["displayName"] = &str
|
ad["displayName"] = &str
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user