56 lines
1.8 KiB
Go
56 lines
1.8 KiB
Go
package repository
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
dbgen "github.com/SamuelTariku/FortuneBet-Backend/gen/db"
|
|
"github.com/SamuelTariku/FortuneBet-Backend/internal/domain"
|
|
)
|
|
|
|
func (s *Store) InsertEventHistory(ctx context.Context, eventHistory domain.CreateEventHistory) (domain.EventHistory, error) {
|
|
dbEventHistory, err := s.queries.InsertEventHistory(ctx, domain.ConvertCreateEventHistory(eventHistory))
|
|
|
|
if err != nil {
|
|
return domain.EventHistory{}, fmt.Errorf("InsertEventHistory failed: %w", err)
|
|
}
|
|
|
|
return domain.ConvertDBEventHistory(dbEventHistory), nil
|
|
}
|
|
|
|
func convertEventHistory(list []dbgen.EventHistory) []domain.EventHistory {
|
|
result := make([]domain.EventHistory, 0, len(list))
|
|
for _, item := range list {
|
|
result = append(result, domain.ConvertDBEventHistory(item))
|
|
}
|
|
return result
|
|
}
|
|
|
|
func (s *Store) GetAllEventHistory(ctx context.Context, filter domain.EventHistoryFilter) ([]domain.EventHistory, error) {
|
|
dbEventHistories, err := s.queries.GetAllEventHistory(ctx, dbgen.GetAllEventHistoryParams{
|
|
EventID: filter.EventID.ToPG(),
|
|
CreatedAfter: filter.CreatedAfter.ToPG(),
|
|
CreatedBefore: filter.CreatedBefore.ToPG(),
|
|
})
|
|
|
|
if err != nil {
|
|
return nil, fmt.Errorf("GetAllEventHistory failed: %w", err)
|
|
}
|
|
|
|
return convertEventHistory(dbEventHistories), nil
|
|
}
|
|
|
|
func (s *Store) GetInitialEventPerDay(ctx context.Context, filter domain.EventHistoryFilter) ([]domain.EventHistory, error) {
|
|
dbEventHistories, err := s.queries.GetInitialEventPerDay(ctx, dbgen.GetInitialEventPerDayParams{
|
|
EventID: filter.EventID.ToPG(),
|
|
CreatedAfter: filter.CreatedAfter.ToPG(),
|
|
CreatedBefore: filter.CreatedBefore.ToPG(),
|
|
})
|
|
|
|
if err != nil {
|
|
return nil, fmt.Errorf("GetInitialEventPerDay failed: %w", err)
|
|
}
|
|
|
|
return convertEventHistory(dbEventHistories), nil
|
|
}
|