tests running

This commit is contained in:
Ravi Prasad
2025-05-01 01:14:16 -05:00
parent 9d97283f82
commit 00519f0420
12 changed files with 25204 additions and 2293 deletions
+45 -48
View File
@@ -2,69 +2,66 @@ package main
import (
"log"
"os"
"time"
"github.com/gofiber/fiber/v2/middleware/logger"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/logger"
"github.com/gofiber/fiber/v2/middleware/adaptor"
"github.com/nprasad2077/NBA_Go/config"
"github.com/nprasad2077/NBA_Go/routes"
"github.com/nprasad2077/NBA_Go/routes"
"github.com/nprasad2077/NBA_Go/services"
_"github.com/nprasad2077/NBA_Go/docs" // swag docs
"github.com/nprasad2077/NBA_Go/utils/middleware"
_ "github.com/nprasad2077/NBA_Go/docs"
fiberswagger "github.com/swaggo/fiber-swagger"
"gorm.io/gorm"
"github.com/prometheus/client_golang/prometheus/promhttp"
)
// importData handles fetching and storing all player stats
func importData(db *gorm.DB) {
log.Println("Starting data import process...")
// Import advanced stats
for season := 2020; season <= 2025; season++ {
if err := services.FetchAndStorePlayerAdvancedStats(db, season); err != nil {
log.Printf("Fetch failed for player advanced season %d: %v\n", season, err)
} else {
log.Printf("Fetch successful for player advanced season %d\n", season)
}
time.Sleep(1100 * time.Millisecond) // optional delay
}
log.Printf("Player advanced import completed")
// Import total stats
for season := 2020; season <= 2025; season++ {
if err := services.FetchAndStorePlayerTotalStats(db, season); err != nil {
log.Printf("Fetch failed for player totals season %d: %v\n", season, err)
} else {
log.Printf("Fetch successful for player totals season %d\n", season)
}
time.Sleep(1000 * time.Millisecond) // optional delay
}
log.Printf("Player totals import completed")
log.Println("Data import process completed successfully!")
}
func main() {
// Check if we're running in import-data mode
if len(os.Args) > 1 && os.Args[1] == "import-data" {
db := config.InitDB()
importData(db)
return // Exit after import is complete
}
// Regular API server mode
app := fiber.New()
// Add standard logger middleware
app.Use(logger.New())
db := config.InitDB()
// No automatic data fetching in API server mode
// Only the db-init container will handle data imports
// Add metrics middleware
app.Use(middleware.MetricsMiddleware())
// Initialize database
db := config.InitDB()
// Original data fetching code, no environment variable check
go func() {
for season := 1993; season <= 2025; season++ {
if err := services.FetchAndStorePlayerAdvancedStats(db, season); err != nil {
log.Printf("Fetch failed for player advanced season %d: %v\n", season, err)
} else {
log.Printf("Fetch successful for player advanced season %d\n", season)
}
time.Sleep(1100 * time.Millisecond) // optional delay
}
log.Printf("player advanced Import Success")
}()
go func() {
for season := 1993; season <= 2025; season++ {
if err := services.FetchAndStorePlayerTotalStats(db, season); err != nil {
log.Printf("Fetch failed for player totals season %d: %v\n", season, err)
} else {
log.Printf("Fetch successful for player totals season %d\n", season)
}
time.Sleep(1000 * time.Millisecond) // optional delay
}
log.Printf("player totals Import Success")
}()
// Add Prometheus metrics endpoint
app.Get("/metrics", adaptor.HTTPHandler(promhttp.Handler()))
// Register routes
routes.RegisterPlayerAdvancedRoutes(app, db)
routes.RegisterPlayerTotalRoutes(app, db)
// Swagger endpoint
app.Get("/swagger/*", fiberswagger.WrapHandler)
log.Println("Starting API server on port 5000...")
app.Listen(":5000")
}