From af2bc290684b620fd93fd9be1f419957900d0ae3 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Sat, 1 Mar 2025 14:14:00 +0800 Subject: [PATCH] :bug: Fix db cleaner --- pkg/internal/services/auth.go | 11 ++++++++--- pkg/internal/services/cleaner.go | 13 ++++--------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/pkg/internal/services/auth.go b/pkg/internal/services/auth.go index 62bfe39..f459c80 100644 --- a/pkg/internal/services/auth.go +++ b/pkg/internal/services/auth.go @@ -3,9 +3,10 @@ package services import ( "context" "fmt" + "time" + "git.solsynth.dev/hypernet/passport/pkg/authkit/models" "git.solsynth.dev/hypernet/passport/pkg/internal/database" - "time" "github.com/eko/gocache/lib/v4/cache" "github.com/eko/gocache/lib/v4/marshaler" @@ -48,7 +49,11 @@ func GetAuthContext(sessionId uint) (models.AuthTicket, error) { ctx = *val.(*models.AuthTicket) } else { ctx, err = CacheAuthContext(sessionId) - log.Debug().Uint("session", sessionId).Msg("Created a new auth context cache") + if err != nil { + log.Error().Err(err).Msg("Unable to cache auth context") + } else { + log.Debug().Uint("session", sessionId).Msg("Created a new auth context cache") + } } return ctx, err @@ -97,7 +102,7 @@ func CacheAuthContext(sessionId uint) (models.AuthTicket, error) { store.WithTags([]string{"auth-context", fmt.Sprintf("user#%d", user.ID)}), ) - return ticket, nil + return ticket, err } func InvalidAuthCacheWithUser(userId uint) { diff --git a/pkg/internal/services/cleaner.go b/pkg/internal/services/cleaner.go index a1404ab..68a5464 100644 --- a/pkg/internal/services/cleaner.go +++ b/pkg/internal/services/cleaner.go @@ -1,27 +1,22 @@ package services import ( + "time" + "git.solsynth.dev/hypernet/passport/pkg/authkit/models" "git.solsynth.dev/hypernet/passport/pkg/internal/database" "github.com/rs/zerolog/log" - "time" ) func DoAutoDatabaseCleanup() { log.Debug().Msg("Now cleaning up entire database...") var count int64 - for _, model := range database.AutoMaintainRange { - tx := database.C.Unscoped().Delete(model, "deleted_at IS NOT NULL") - if tx.Error != nil { - log.Error().Err(tx.Error).Msg("An error occurred when running cleaning up entire database...") - } - count += tx.RowsAffected - } deadline := time.Now().Add(-30 * 24 * time.Hour) seenDeadline := time.Now().Add(-7 * 24 * time.Hour) - database.C.Unscoped().Where("created_at <= ? OR read_at <= ?", deadline, seenDeadline).Delete(&models.Notification{}) + tx := database.C.Unscoped().Where("created_at <= ? OR read_at <= ?", deadline, seenDeadline).Delete(&models.Notification{}) + count += tx.RowsAffected log.Debug().Int64("affected", count).Msg("Clean up entire database accomplished.") }