Skip creating inline reference attachments (#1606)
## Description This fixes #999 by skipping restore of reference attachments that are marked inline. The attachment links (e.g. OneDrive links) are part of the message body and do not need to be recreated. ## Type of change <!--- Please check the type of change your PR introduces: ---> - [ ] 🌻 Feature - [x] 🐛 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. --> * #999 ## Test Plan <!-- How will this be tested prior to merging.--> - [ ] 💪 Manual - [x] ⚡ Unit test - [ ] 💚 E2E
This commit is contained in:
parent
7ab0b03e1a
commit
cdc92b3929
@ -44,9 +44,17 @@ func uploadAttachment(
|
|||||||
attachment models.Attachmentable,
|
attachment models.Attachmentable,
|
||||||
) error {
|
) error {
|
||||||
logger.Ctx(ctx).Debugf("uploading attachment with size %d", *attachment.GetSize())
|
logger.Ctx(ctx).Debugf("uploading attachment with size %d", *attachment.GetSize())
|
||||||
|
attachmentType := attachmentType(attachment)
|
||||||
|
|
||||||
|
// Reference attachments that are inline() do not need to be recreated. The contents are part of the body.
|
||||||
|
if attachmentType == models.REFERENCE_ATTACHMENTTYPE &&
|
||||||
|
attachment.GetIsInline() != nil && *attachment.GetIsInline() {
|
||||||
|
logger.Ctx(ctx).Debugf("skip uploading inline reference attachment: ", *attachment.GetName())
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// For Item/Reference attachments *or* file attachments < 3MB, use the attachments endpoint
|
// For Item/Reference attachments *or* file attachments < 3MB, use the attachments endpoint
|
||||||
if attachmentType(attachment) != models.FILE_ATTACHMENTTYPE || *attachment.GetSize() < largeAttachmentSize {
|
if attachmentType != models.FILE_ATTACHMENTTYPE || *attachment.GetSize() < largeAttachmentSize {
|
||||||
err := uploader.uploadSmallAttachment(ctx, attachment)
|
err := uploader.uploadSmallAttachment(ctx, attachment)
|
||||||
|
|
||||||
return err
|
return err
|
||||||
|
|||||||
@ -415,6 +415,19 @@ func (suite *ExchangeServiceSuite) TestRestoreExchangeObject() {
|
|||||||
return *folder.GetId()
|
return *folder.GetId()
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "Test Mail: Reference(OneDrive) Attachment",
|
||||||
|
bytes: mockconnector.GetMessageWithOneDriveAttachment("Restore Reference(OneDrive) Attachment"),
|
||||||
|
category: path.EmailCategory,
|
||||||
|
cleanupFunc: DeleteMailFolder,
|
||||||
|
destination: func(ctx context.Context) string {
|
||||||
|
folderName := "TestRestoreMailwithReferenceAttachment: " + common.FormatSimpleDateTime(now)
|
||||||
|
folder, err := CreateMailFolder(ctx, suite.es, userID, folderName)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
return *folder.GetId()
|
||||||
|
},
|
||||||
|
},
|
||||||
// TODO: #884 - reinstate when able to specify root folder by name
|
// TODO: #884 - reinstate when able to specify root folder by name
|
||||||
{
|
{
|
||||||
name: "Test Contact",
|
name: "Test Contact",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user