package main import ( "fmt" "kng_feed_api/controller" cronjob "kng_feed_api/cron-job" "kng_feed_api/database" "kng_feed_api/model" "log" "github.com/gin-gonic/gin" "github.com/joho/godotenv" "github.com/robfig/cron" ) func main() { loadEnv() loadDatabase() startCronJob() serveApplication() } func startCronJob() { cron := cron.New() cron.AddFunc("@every 6h", cronjob.CreateXMLFeed) cron.Start() } func loadDatabase() { database.Connect() database.Database.AutoMigrate(&model.User{}) database.Database.AutoMigrate(&model.Product{}) database.Database.AutoMigrate(&model.Category{}) } func loadEnv() { err := godotenv.Load(".env.local") if err != nil { log.Fatal("Error loading .env file") } } func serveApplication() { router := gin.Default() router.StaticFile("/feed.xml", "./feed.xml") //filepath.Join(helper.RootDir())) publicRoutes := router.Group("/auth") publicRoutes.POST("/register", controller.Register) publicRoutes.POST("/login", controller.Login) feedRoutes := router.Group("/feed") feedRoutes.POST("/products", controller.LoadProductsInfo) feedRoutes.POST("/categories", controller.CreateUpdateCategories) feedRoutes.GET("/", controller.SendFileToClient) router.Run(":3005") fmt.Println("Server running on port 8000") }