From c473627112e4952b4e52aef6984bfdb37b007fd0 Mon Sep 17 00:00:00 2001 From: Mo Tarbin Date: Sat, 18 Jan 2025 09:51:13 -0500 Subject: [PATCH] Add PointsHistory model for tracking points history --- internal/circle/repo/repository.go | 4 ++++ internal/database/migration.go | 2 ++ 2 files changed, 6 insertions(+) diff --git a/internal/circle/repo/repository.go b/internal/circle/repo/repository.go index 7b1af47..36aba93 100644 --- a/internal/circle/repo/repository.go +++ b/internal/circle/repo/repository.go @@ -7,6 +7,7 @@ import ( cModel "donetick.com/core/internal/circle/model" pModel "donetick.com/core/internal/points" uModel "donetick.com/core/internal/user/model" + "donetick.com/core/logging" "gorm.io/gorm" ) @@ -142,7 +143,9 @@ func (r *CircleRepository) AssignDefaultCircle(c context.Context, userID int) er } func (r *CircleRepository) RedeemPoints(c context.Context, circleID int, userID int, points int, createdBy int) error { + logger := logging.FromContext(c) err := r.db.Transaction(func(tx *gorm.DB) error { + if err := tx.Model(&cModel.UserCircle{}).Where("user_id = ? AND circle_id = ?", userID, circleID).Update("points_redeemed", gorm.Expr("points_redeemed + ?", points)).Error; err != nil { return err } @@ -159,6 +162,7 @@ func (r *CircleRepository) RedeemPoints(c context.Context, circleID int, userID return nil }) if err != nil { + logger.Error("Error redeeming points", err) return err } return nil diff --git a/internal/database/migration.go b/internal/database/migration.go index ba5946c..be0ea41 100644 --- a/internal/database/migration.go +++ b/internal/database/migration.go @@ -9,6 +9,7 @@ import ( chModel "donetick.com/core/internal/chore/model" cModel "donetick.com/core/internal/circle/model" nModel "donetick.com/core/internal/notifier/model" + pModel "donetick.com/core/internal/points" tModel "donetick.com/core/internal/thing/model" uModel "donetick.com/core/internal/user/model" // Pure go SQLite driver, checkout https://github.com/glebarez/sqlite for details migrations "donetick.com/core/migrations" @@ -35,6 +36,7 @@ func Migration(db *gorm.DB) error { chModel.Label{}, chModel.ChoreLabels{}, migrations.Migration{}, + pModel.PointsHistory{}, ); err != nil { return err }