aboutsummaryrefslogtreecommitdiffstats
path: root/services/user/avatar.go
diff options
context:
space:
mode:
Diffstat (limited to 'services/user/avatar.go')
-rw-r--r--services/user/avatar.go32
1 files changed, 14 insertions, 18 deletions
diff --git a/services/user/avatar.go b/services/user/avatar.go
index 3f87466eaa..df188e5adc 100644
--- a/services/user/avatar.go
+++ b/services/user/avatar.go
@@ -24,26 +24,22 @@ func UploadAvatar(ctx context.Context, u *user_model.User, data []byte) error {
return err
}
- ctx, committer, err := db.TxContext(ctx)
- if err != nil {
- return err
- }
- defer committer.Close()
-
- u.UseCustomAvatar = true
- u.Avatar = avatar.HashAvatar(u.ID, data)
- if err = user_model.UpdateUserCols(ctx, u, "use_custom_avatar", "avatar"); err != nil {
- return fmt.Errorf("updateUser: %w", err)
- }
+ return db.WithTx(ctx, func(ctx context.Context) error {
+ u.UseCustomAvatar = true
+ u.Avatar = avatar.HashAvatar(u.ID, data)
+ if err = user_model.UpdateUserCols(ctx, u, "use_custom_avatar", "avatar"); err != nil {
+ return fmt.Errorf("updateUser: %w", err)
+ }
- if err := storage.SaveFrom(storage.Avatars, u.CustomAvatarRelativePath(), func(w io.Writer) error {
- _, err := w.Write(avatarData)
- return err
- }); err != nil {
- return fmt.Errorf("Failed to create dir %s: %w", u.CustomAvatarRelativePath(), err)
- }
+ if err := storage.SaveFrom(storage.Avatars, u.CustomAvatarRelativePath(), func(w io.Writer) error {
+ _, err := w.Write(avatarData)
+ return err
+ }); err != nil {
+ return fmt.Errorf("Failed to create dir %s: %w", u.CustomAvatarRelativePath(), err)
+ }
- return committer.Commit()
+ return nil
+ })
}
// DeleteAvatar deletes the user's custom avatar.