feat: removing odds when event is removed
This commit is contained in:
parent
35a03e1959
commit
c374fd7a96
|
|
@ -112,4 +112,7 @@ WHERE e.id = $1
|
|||
AND e.status = 'upcoming'
|
||||
AND o.is_active = true
|
||||
AND o.source = 'bet365'
|
||||
LIMIT sqlc.narg('limit') OFFSET sqlc.narg('offset');
|
||||
LIMIT sqlc.narg('limit') OFFSET sqlc.narg('offset');
|
||||
-- name: DeleteOddsForEvent :exec
|
||||
DELETE FROM odds
|
||||
Where fi = $1;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.29.0
|
||||
// sqlc v1.28.0
|
||||
// source: monitor.sql
|
||||
|
||||
package dbgen
|
||||
|
|
|
|||
|
|
@ -11,6 +11,16 @@ import (
|
|||
"github.com/jackc/pgx/v5/pgtype"
|
||||
)
|
||||
|
||||
const DeleteOddsForEvent = `-- name: DeleteOddsForEvent :exec
|
||||
DELETE FROM odds
|
||||
Where fi = $1
|
||||
`
|
||||
|
||||
func (q *Queries) DeleteOddsForEvent(ctx context.Context, fi pgtype.Text) error {
|
||||
_, err := q.db.Exec(ctx, DeleteOddsForEvent, fi)
|
||||
return err
|
||||
}
|
||||
|
||||
const GetALLPrematchOdds = `-- name: GetALLPrematchOdds :many
|
||||
SELECT event_id,
|
||||
fi,
|
||||
|
|
|
|||
|
|
@ -275,6 +275,13 @@ func (s *Store) GetPrematchOddsByUpcomingID(ctx context.Context, upcomingID stri
|
|||
return domainOdds, nil
|
||||
}
|
||||
|
||||
func (s *Store) DeleteOddsForEvent(ctx context.Context, eventID string) error {
|
||||
return s.queries.DeleteOddsForEvent(ctx, pgtype.Text{
|
||||
String: eventID,
|
||||
Valid: true,
|
||||
})
|
||||
}
|
||||
|
||||
func getString(v interface{}) string {
|
||||
if s, ok := v.(string); ok {
|
||||
return s
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package repository
|
|||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
|
||||
dbgen "github.com/SamuelTariku/FortuneBet-Backend/gen/db"
|
||||
"github.com/SamuelTariku/FortuneBet-Backend/internal/domain"
|
||||
|
|
@ -32,6 +33,7 @@ func (s *Store) GetOtp(ctx context.Context, sentTo string, sentfor domain.OtpFor
|
|||
OtpFor: string(sentfor),
|
||||
})
|
||||
if err != nil {
|
||||
fmt.Printf("OTP REPO error: %v sentTo: %v, medium: %v, otpFor: %v\n", err, sentTo, medium, sentfor)
|
||||
if err == sql.ErrNoRows {
|
||||
return domain.Otp{}, domain.ErrOtpNotFound
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,4 +16,5 @@ type Service interface {
|
|||
GetPaginatedPrematchOddsByUpcomingID(ctx context.Context, upcomingID string, limit domain.ValidInt64, offset domain.ValidInt64) ([]domain.Odd, error)
|
||||
GetALLPrematchOdds(ctx context.Context) ([]domain.Odd, error)
|
||||
GetRawOddsByMarketID(ctx context.Context, marketID string, upcomingID string) (domain.RawOddsByMarketID, error)
|
||||
DeleteOddsForEvent(ctx context.Context, eventID string) error
|
||||
}
|
||||
|
|
|
|||
|
|
@ -517,6 +517,10 @@ func (s *ServiceImpl) GetPaginatedPrematchOddsByUpcomingID(ctx context.Context,
|
|||
return s.store.GetPaginatedPrematchOddsByUpcomingID(ctx, upcomingID, limit, offset)
|
||||
}
|
||||
|
||||
func (s *ServiceImpl) DeleteOddsForEvent(ctx context.Context, eventID string) error {
|
||||
return s.store.DeleteOddsForEvent(ctx, eventID)
|
||||
}
|
||||
|
||||
func getString(v interface{}) string {
|
||||
if str, ok := v.(string); ok {
|
||||
return str
|
||||
|
|
|
|||
|
|
@ -185,6 +185,11 @@ func (s *Service) FetchAndProcessResults(ctx context.Context) error {
|
|||
s.logger.Error("Failed to remove event", "event_id", event.ID, "error", err)
|
||||
return err
|
||||
}
|
||||
err = s.repo.DeleteOddsForEvent(ctx, event.ID)
|
||||
if err != nil {
|
||||
s.logger.Error("Failed to remove odds for event", "event_id", event.ID, "error", err)
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package user
|
|||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"time"
|
||||
|
||||
"github.com/SamuelTariku/FortuneBet-Backend/internal/domain"
|
||||
|
|
@ -33,6 +34,7 @@ func (s *Service) ResetPassword(ctx context.Context, resetReq domain.ResetPasswo
|
|||
} else {
|
||||
sentTo = resetReq.PhoneNumber
|
||||
}
|
||||
|
||||
otp, err := s.otpStore.GetOtp(
|
||||
ctx, sentTo,
|
||||
domain.OtpReset, resetReq.OtpMedium)
|
||||
|
|
@ -55,6 +57,7 @@ func (s *Service) ResetPassword(ctx context.Context, resetReq domain.ResetPasswo
|
|||
return err
|
||||
}
|
||||
// reset pass and mark otp as used
|
||||
|
||||
err = s.userStore.UpdatePassword(ctx, sentTo, hashedPassword, otp.ID)
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
|
|||
|
|
@ -37,30 +37,30 @@ func StartDataFetchingCrons(eventService eventsvc.Service, oddsService oddssvc.S
|
|||
// }
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// spec: "0 */5 * * * *", // Every 5 Minutes
|
||||
// task: func() {
|
||||
// log.Println("Updating expired events status...")
|
||||
{
|
||||
spec: "0 */5 * * * *", // Every 5 Minutes
|
||||
task: func() {
|
||||
log.Println("Updating expired events status...")
|
||||
|
||||
// if _, err := resultService.CheckAndUpdateExpiredEvents(context.Background()); err != nil {
|
||||
// log.Printf("Failed to update events: %v", err)
|
||||
// } else {
|
||||
// log.Printf("Successfully updated expired events")
|
||||
// }
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// spec: "0 */15 * * * *", // Every 15 Minutes
|
||||
// task: func() {
|
||||
// log.Println("Fetching results for upcoming events...")
|
||||
if _, err := resultService.CheckAndUpdateExpiredEvents(context.Background()); err != nil {
|
||||
log.Printf("Failed to update events: %v", err)
|
||||
} else {
|
||||
log.Printf("Successfully updated expired events")
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
spec: "0 */15 * * * *", // Every 15 Minutes
|
||||
task: func() {
|
||||
log.Println("Fetching results for upcoming events...")
|
||||
|
||||
// if err := resultService.FetchAndProcessResults(context.Background()); err != nil {
|
||||
// log.Printf("Failed to process result: %v", err)
|
||||
// } else {
|
||||
// log.Printf("Successfully processed all outcomes")
|
||||
// }
|
||||
// },
|
||||
// },
|
||||
if err := resultService.FetchAndProcessResults(context.Background()); err != nil {
|
||||
log.Printf("Failed to process result: %v", err)
|
||||
} else {
|
||||
log.Printf("Successfully processed all outcomes")
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for _, job := range schedule {
|
||||
|
|
|
|||
|
|
@ -78,11 +78,10 @@ func (h *Handler) ConnectSocket(c *fiber.Ctx) error {
|
|||
}
|
||||
|
||||
h.notificationSvc.Hub.Register <- client
|
||||
h.logger.Info("WebSocket connection established", "userID", userID)
|
||||
// h.logger.Info("WebSocket connection established", "userID", userID)
|
||||
|
||||
defer func() {
|
||||
h.notificationSvc.Hub.Unregister <- client
|
||||
h.logger.Info("WebSocket connection closed", "userID", userID)
|
||||
conn.Close()
|
||||
}()
|
||||
|
||||
|
|
|
|||
|
|
@ -253,7 +253,7 @@ func (h *Handler) GetCustomerWallet(c *fiber.Ctx) error {
|
|||
// return fiber.NewError(fiber.StatusBadRequest, "Invalid company_id")
|
||||
// }
|
||||
|
||||
h.logger.Info("Fetching customer wallet", "userID", userID)
|
||||
// h.logger.Info("Fetching customer wallet", "userID", userID)
|
||||
|
||||
wallet, err := h.walletSvc.GetWalletsByUser(c.Context(), userID)
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ func (a *App) authMiddleware(c *fiber.Ctx) error {
|
|||
|
||||
authHeader := c.Get("Authorization")
|
||||
if authHeader == "" {
|
||||
fmt.Println("Auth Header Missing")
|
||||
// fmt.Println("Auth Header Missing")
|
||||
return fiber.NewError(fiber.StatusUnauthorized, "Authorization header missing")
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user