From 286bacaefe2d2f388c690fab50a23bdda229c227 Mon Sep 17 00:00:00 2001 From: divyam234 <47589864+divyam234@users.noreply.github.com> Date: Sun, 15 Sep 2024 13:52:45 +0530 Subject: [PATCH] refactor: Purge share cache entry post delete --- cmd/run.go | 2 +- internal/tgc/helpers.go | 2 +- pkg/services/file.go | 9 ++++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/cmd/run.go b/cmd/run.go index 0b45795..50c668c 100644 --- a/cmd/run.go +++ b/cmd/run.go @@ -65,7 +65,7 @@ func NewRun() *cobra.Command { duration.DurationVar(runCmd.Flags(), &config.CronJobs.FolderSizeInterval, "cronjobs-folder-size-interval", 2*time.Hour, "Folder size update interval") runCmd.Flags().IntVar(&config.Cache.MaxSize, "cache-max-size", 10*1024*1024, "Max Cache max size (memory)") - runCmd.Flags().StringVar(&config.Cache.RedisAddr, "cache-redis-addr", "localhost:6379", "Redis address") + runCmd.Flags().StringVar(&config.Cache.RedisAddr, "cache-redis-addr", "", "Redis address") runCmd.Flags().StringVar(&config.Cache.RedisPass, "cache-redis-pass", "", "Redis password") runCmd.Flags().IntVarP(&config.Log.Level, "log-level", "", -1, "Logging level") diff --git a/internal/tgc/helpers.go b/internal/tgc/helpers.go index a462753..d8012f6 100644 --- a/internal/tgc/helpers.go +++ b/internal/tgc/helpers.go @@ -234,7 +234,7 @@ func GetLocation(ctx context.Context, client *tg.Client, channelId int64, partId } func CalculateChunkSize(start, end int64) int64 { - chunkSize := int64(512 * 1024) + chunkSize := int64(1024 * 1024) for chunkSize > 1024 && chunkSize > (end-start) { chunkSize /= 2 diff --git a/pkg/services/file.go b/pkg/services/file.go index aa5cc75..9423a76 100644 --- a/pkg/services/file.go +++ b/pkg/services/file.go @@ -473,10 +473,17 @@ func (fs *FileService) GetShareByFileId(fileId string, userId int64) (*schemas.F func (fs *FileService) DeleteShare(fileId string, userId int64) *types.AppError { - if err := fs.db.Where("file_id = ?", fileId).Where("user_id = ?", userId).Delete(&models.FileShare{}).Error; err != nil { + var deletedShare models.FileShare + + if err := fs.db.Clauses(clause.Returning{}).Where("file_id = ?", fileId).Where("user_id = ?", userId). + Delete(&deletedShare).Error; err != nil { return &types.AppError{Error: err} } + if deletedShare.ID != "" { + fs.cache.Delete(fmt.Sprintf("shares:%s", deletedShare.ID)) + } + return nil }