Add Balance and Withdrawal

This commit is contained in:
aditya.siregar
2024-07-31 23:02:15 +07:00
parent 38003f84d1
commit 4c1a819365
19 changed files with 434 additions and 69 deletions
+17 -1
View File
@@ -4,9 +4,9 @@ import (
"context"
"furtuna-be/internal/common/logger"
"furtuna-be/internal/entity"
"go.uber.org/zap"
"gorm.io/gorm"
"gorm.io/gorm/clause"
)
type WalletRepository struct {
@@ -58,6 +58,22 @@ func (r *WalletRepository) GetByID(ctx context.Context, id int64) (*entity.Walle
return wallet, nil
}
func (r *WalletRepository) GetForUpdate(ctx context.Context, tx *gorm.DB, partnerID int64) (*entity.Wallet, error) {
if tx == nil {
tx = r.db
}
query := tx.WithContext(ctx).Where("partner_id = ?", partnerID).
Clauses(clause.Locking{Strength: "UPDATE"})
wallet := new(entity.Wallet)
if err := query.First(wallet).Error; err != nil {
logger.ContextLogger(ctx).Error("error when finding balance by partner ID", zap.Error(err))
return nil, err
}
return wallet, nil
}
func (r *WalletRepository) GetAll(ctx context.Context) ([]*entity.Wallet, error) {
var wallets []*entity.Wallet
if err := r.db.Find(&wallets).Error; err != nil {