From 1955d944144230d0aa5ed74251aabb7107cd6e7a Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Sun, 29 Dec 2024 01:59:57 +0800 Subject: [PATCH] :bug: Fix on boost reupload --- pkg/internal/services/boost.go | 2 +- pkg/internal/services/uploader.go | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/pkg/internal/services/boost.go b/pkg/internal/services/boost.go index 9a80718..a94b9cd 100644 --- a/pkg/internal/services/boost.go +++ b/pkg/internal/services/boost.go @@ -94,7 +94,7 @@ func ActivateBoost(boost models.AttachmentBoost) error { return fmt.Errorf("invalid destination: %d", boost.Destination) } - if err := ReUploadFile(boost.Attachment, boost.Destination); err != nil { + if err := ReUploadFile(boost.Attachment, boost.Destination, true); err != nil { log.Warn().Any("boost", boost).Err(err).Msg("Unable to activate boost...") database.C.Model(&boost).Update("status", models.BoostStatusError) return err diff --git a/pkg/internal/services/uploader.go b/pkg/internal/services/uploader.go index f76a05f..d482b7b 100644 --- a/pkg/internal/services/uploader.go +++ b/pkg/internal/services/uploader.go @@ -35,7 +35,7 @@ func UploadFileToTemporary(ctx *fiber.Ctx, file *multipart.FileHeader, meta mode } } -func ReUploadFile(meta models.Attachment, dst int) error { +func ReUploadFile(meta models.Attachment, dst int, doNotUpdate ...bool) error { if meta.Destination == dst { return fmt.Errorf("destnation cannot be reversed temporary or the same as the original") } @@ -47,6 +47,9 @@ func ReUploadFile(meta models.Attachment, dst int) error { } cleanupDst := func() { + if len(doNotUpdate) == 0 || !doNotUpdate[0] { + database.C.Save(&meta) + } if prevDst == models.AttachmentDstTemporary { return } @@ -82,7 +85,6 @@ func ReUploadFile(meta models.Attachment, dst int) error { return fmt.Errorf("unable to copy data to dest file: %v", err) } - database.C.Save(&meta) cleanupDst() return nil case models.DestinationTypeS3: @@ -106,7 +108,6 @@ func ReUploadFile(meta models.Attachment, dst int) error { return fmt.Errorf("unable to upload file to s3: %v", err) } - database.C.Save(&meta) cleanupDst() return nil default: