Files
backend/main.go
2026-04-06 22:57:57 +02:00

71 lines
1.6 KiB
Go

package main
import (
"fmt"
"github.com/gin-gonic/gin"
"github.com/joho/godotenv"
swaggerFiles "github.com/swaggo/files"
ginSwagger "github.com/swaggo/gin-swagger"
"git.dynamicdiscord.de/harakat/backend/controllers"
_ "git.dynamicdiscord.de/harakat/backend/docs"
"git.dynamicdiscord.de/harakat/backend/middlewares"
"git.dynamicdiscord.de/harakat/backend/repositories"
)
var (
userController controllers.UserController = controllers.NewUserController()
authValidator middlewares.AuthValidator = middlewares.AuthValidator{}
)
func LoadEnvVariables() {
err := godotenv.Load(".env")
if err != nil {
fmt.Println("Error loading .env file")
}
}
// @title Harakat Rest-API
// @version 0.1
// @description This is harakat backend server.
// @termsOfService TODO
// @contact.name TODO
// @contact.url TODO
// @contact.email TODO
// @license.name TODO
// @license.url TODO
// @host localhost:8080
// @BasePath /api/v0
// @securityDefinitions.basic BasicAuth
// @externalDocs.description OpenAPI
// @externalDocs.url https://swagger.io/resources/open-api/
func main() {
LoadEnvVariables()
repositories.InitRepositories()
server := gin.New()
server.Use(gin.Recovery())
server.Use(gin.Logger())
// use ginSwagger middleware to serve the API docs
server.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
apiRoutes := server.Group("/api/v0", authValidator.OptionalAuth)
{
apiRoutes.POST("/user/login", userController.Login)
apiRoutes.POST("/user/register", userController.InitAdmin)
apiRoutes.POST("/user/register/:token", userController.Register)
apiRoutes.GET("/user/status", userController.Status)
}
server.Run()
}