From 940abc279cb84e6bdb62326565b04c279bfb596b Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Wed, 16 Nov 2022 11:27:08 +0100 Subject: [chore] reversion: use specific columns for updating user again (#1059) --- internal/db/bundb/user.go | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) (limited to 'internal/db/bundb') diff --git a/internal/db/bundb/user.go b/internal/db/bundb/user.go index d9b281a6f..ab3cc0f67 100644 --- a/internal/db/bundb/user.go +++ b/internal/db/bundb/user.go @@ -133,18 +133,29 @@ func (u *userDB) PutUser(ctx context.Context, user *gtsmodel.User) db.Error { }) } -func (u *userDB) UpdateUser(ctx context.Context, user *gtsmodel.User) db.Error { +func (u *userDB) UpdateUser(ctx context.Context, user *gtsmodel.User, columns ...string) db.Error { // Update the user's last-updated user.UpdatedAt = time.Now() - return u.cache.Store(user, func() error { - _, err := u.conn. - NewUpdate(). - Model(user). - Where("? = ?", bun.Ident("user.id"), user.ID). - Exec(ctx) + if len(columns) > 0 { + // If we're updating by column, ensure "updated_at" is included + columns = append(columns, "updated_at") + } + + // Update the user in DB + _, err := u.conn. + NewUpdate(). + Model(user). + Where("? = ?", bun.Ident("user.id"), user.ID). + Column(columns...). + Exec(ctx) + if err != nil { return u.conn.ProcessError(err) - }) + } + + // Invalidate in cache + u.cache.Invalidate("ID", user.ID) + return nil } func (u *userDB) DeleteUserByID(ctx context.Context, userID string) db.Error { -- cgit v1.3