Files
portal/main.go
2026-06-22 11:38:29 +02:00

77 lines
2.4 KiB
Go

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"))
}