73 lines
1.5 KiB
Go
73 lines
1.5 KiB
Go
package repository
|
|
|
|
import (
|
|
"context"
|
|
|
|
dbgen "github.com/SamuelTariku/FortuneBet-Backend/gen/db"
|
|
"github.com/SamuelTariku/FortuneBet-Backend/internal/domain"
|
|
"github.com/jackc/pgx/v5/pgtype"
|
|
)
|
|
|
|
func (s *Store) CreateTicket(ctx context.Context, amount int32, totalOdds int32) (domain.Ticket, error) {
|
|
|
|
ticket, err := s.queries.CreateTicket(ctx, dbgen.CreateTicketParams{
|
|
Amount: pgtype.Numeric{
|
|
Exp: amount,
|
|
},
|
|
TotalOdds: pgtype.Numeric{
|
|
Exp: totalOdds,
|
|
},
|
|
})
|
|
|
|
if err != nil {
|
|
return domain.Ticket{}, err
|
|
}
|
|
|
|
return domain.Ticket{
|
|
ID: ticket.ID,
|
|
Amount: ticket.Amount.Exp,
|
|
TotalOdds: ticket.TotalOdds.Exp,
|
|
}, err
|
|
|
|
}
|
|
|
|
func (s *Store) GetTicketByID(ctx context.Context, id int64) (domain.Ticket, error) {
|
|
ticket, err := s.queries.GetTicketByID(ctx, id)
|
|
if err != nil {
|
|
return domain.Ticket{}, err
|
|
}
|
|
|
|
return domain.Ticket{
|
|
ID: ticket.ID,
|
|
Amount: ticket.Amount.Exp,
|
|
TotalOdds: ticket.TotalOdds.Exp,
|
|
}, nil
|
|
}
|
|
|
|
func (s *Store) GetAllTickets(ctx context.Context) ([]domain.Ticket, error) {
|
|
tickets, err := s.queries.GetAllTickets(ctx)
|
|
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
var result []domain.Ticket
|
|
for _, ticket := range tickets {
|
|
result = append(result, domain.Ticket{
|
|
ID: ticket.ID,
|
|
Amount: ticket.Amount.Exp,
|
|
TotalOdds: ticket.TotalOdds.Exp,
|
|
})
|
|
}
|
|
|
|
return result, nil
|
|
}
|
|
|
|
func (s *Store) DeleteOldTickets(ctx context.Context) error {
|
|
return s.queries.DeleteOldTickets(ctx)
|
|
}
|
|
|
|
func (s *Store) DeleteTicket(ctx context.Context, id int64) error {
|
|
return s.queries.DeleteTicket(ctx, id)
|
|
}
|