package main import ( "fmt" "io" "net/http" "os" "github.com/gin-gonic/gin" "github.com/joho/godotenv" "git.dynamicdiscord.de/malobeo/portal/controllers" "git.dynamicdiscord.de/malobeo/portal/middlewares" ) var ( userController controllers.UserController = controllers.UserController{} authValidator middlewares.AuthValidator = middlewares.AuthValidator{} ) func LoadEnvVariables() { err := godotenv.Load(".env") if err != nil { fmt.Println("Error loading .env file") } } func setupLogOutput() { f, _ := os.Create("gin.log") gin.DefaultWriter = io.MultiWriter(f, os.Stdout) } func SetReply(ctx *gin.Context, err error, message any) { if err != nil { ctx.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) } else { ctx.JSON(http.StatusOK, message) } } func main() { LoadEnvVariables() server := gin.New() server.Use(gin.Recovery()) server.Use(gin.Logger()) server.Static("/static", os.Getenv("STATIC")) server.LoadHTMLGlob(fmt.Sprintf("%s/*.html", os.Getenv("VIEWS"))) viewRoutes := server.Group("/", authValidator.OptionalAuth) { viewRoutes.GET("/login", userController.LoginView) viewRoutes.POST("/login", userController.LoginHandler) //write middleware that redirects to homescreen on register/login/reset for logged in users //viewRoutes.GET("/login", userController.LoginView) //viewRoutes.GET("/logout", userController.Logout) //viewRoutes.GET("/register", userController.InitAdmin) //viewRoutes.GET("/register/:token", userController.RegisterView) //viewRoutes.GET("/invites", authValidator.RequireAdmin, userController.InviteView) //viewRoutes.POST("/invites", authValidator.RequireAdmin, userController.InviteHandler) //viewRoutes.GET("/passwordreset", authValidator.RequireAuth, userController.ResetView) //viewRoutes.GET("/additem", authValidator.RequireAdmin, shopItemController.AddItemView) //viewRoutes.GET("/batchupload", authValidator.RequireAdmin, shopItemController.AddItemsView) //viewRoutes.POST("/login", userController.LoginHandler) //viewRoutes.POST("/register", userController.RegisterHandler) //viewRoutes.POST("/additem", authValidator.RequireAdmin, shopItemController.AddItemHandler) //viewRoutes.POST("/batchupload", authValidator.RequireAdmin, shopItemController.AddItemsHandler) //viewRoutes.POST("/passwordreset", authValidator.RequireAuth, userController.ResetHandler) } server.Run(":" + "8080") //server.Run(":" + os.Getenv("PORT")) }