| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package main
- import (
- "fmt"
- "kng_feed_api/controller"
- cronjob "kng_feed_api/cron-job"
- "kng_feed_api/database"
- "kng_feed_api/model"
- "log"
- "os"
- "github.com/gin-gonic/gin"
- "github.com/joho/godotenv"
- "github.com/robfig/cron"
- )
- func main() {
- loadEnv()
- loadDatabase()
- startCronJob()
- serveApplication()
- }
- func startCronJob() {
- cron := cron.New()
- fmt.Println(os.Getenv("CRON_XML_FEED"))
- fmt.Println(os.Getenv("CRON_CSV_DELTA"))
- cron.AddFunc(os.Getenv("CRON_XML_FEED"), cronjob.CreateXMLFeed)
- cron.AddFunc(os.Getenv("CRON_CSV_DELTA"), cronjob.CreateCSVDeltaFeed)
- cron.Start()
- }
- func loadDatabase() {
- database.Connect()
- database.Database.AutoMigrate(&model.User{})
- database.Database.AutoMigrate(&model.Product{})
- database.Database.AutoMigrate(&model.Category{})
- database.Database.AutoMigrate(&model.Availability{})
- }
- 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()))
- router.StaticFile("/delta.csv", "./delta.csv") //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.SendXmlFeedToClient)
- deltaRoutes := router.Group("/delta")
- deltaRoutes.POST("/availability", controller.LoadAvailabilityInfo)
- deltaRoutes.GET("/availability", controller.SendCsvDeltaToClient)
- serviceRoutes := router.Group("/service")
- serviceRoutes.GET("/working", controller.HealthCheck)
- router.Run(":3005")
- fmt.Println("Server running on port 3005")
- }
|