79 lines
1.9 KiB
Go
79 lines
1.9 KiB
Go
package repository
|
|
|
|
import (
|
|
"context"
|
|
|
|
dbgen "github.com/SamuelTariku/FortuneBet-Backend/gen/db"
|
|
"github.com/SamuelTariku/FortuneBet-Backend/internal/domain"
|
|
)
|
|
|
|
func (s *Store) CreateUserBonus(ctx context.Context, bonus domain.CreateBonus) (domain.UserBonus, error) {
|
|
newBonus, err := s.queries.CreateUserBonus(ctx, domain.ConvertCreateBonus(bonus))
|
|
|
|
if err != nil {
|
|
return domain.UserBonus{}, err
|
|
}
|
|
|
|
return domain.ConvertDBBonus(newBonus), nil
|
|
}
|
|
|
|
func (s *Store) GetAllUserBonuses(ctx context.Context) ([]domain.UserBonus, error) {
|
|
bonuses, err := s.queries.GetAllUserBonuses(ctx)
|
|
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return domain.ConvertDBBonuses(bonuses), nil
|
|
}
|
|
|
|
func (s *Store) GetBonusesByUserID(ctx context.Context, userID int64) ([]domain.UserBonus, error) {
|
|
bonuses, err := s.queries.GetBonusesByUserID(ctx, userID)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return domain.ConvertDBBonuses(bonuses), nil
|
|
}
|
|
|
|
func (s *Store) GetBonusByID(ctx context.Context, bonusID int64) (domain.UserBonus, error) {
|
|
bonus, err := s.queries.GetUserBonusByID(ctx, bonusID)
|
|
if err != nil {
|
|
return domain.UserBonus{}, err
|
|
}
|
|
return domain.ConvertDBBonus(bonus), nil
|
|
}
|
|
|
|
|
|
func (s *Store) GetBonusStats(ctx context.Context, filter domain.BonusFilter) (domain.BonusStats, error) {
|
|
bonus, err := s.queries.GetBonusStats(ctx, dbgen.GetBonusStatsParams{
|
|
CompanyID: filter.CompanyID.ToPG(),
|
|
UserID: filter.UserID.ToPG(),
|
|
})
|
|
if err != nil {
|
|
return domain.BonusStats{}, err
|
|
}
|
|
return domain.ConvertDBBonusStats(bonus), nil
|
|
}
|
|
|
|
func (s *Store) UpdateUserBonus(ctx context.Context, bonusID int64, IsClaimed bool) (error) {
|
|
err := s.queries.UpdateUserBonus(ctx, dbgen.UpdateUserBonusParams{
|
|
ID: bonusID,
|
|
IsClaimed: IsClaimed,
|
|
})
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
|
|
func (s *Store) DeleteUserBonus(ctx context.Context, bonusID int64) (error) {
|
|
err := s.queries.DeleteUserBonus(ctx, bonusID)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|