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)) v0 := server.Group("/api/v0", authValidator.OptionalAuth) { user := v0.Group("/user") { user.POST("/login", userController.Login) user.POST("/register", userController.InitAdmin) user.POST("/register/:token", userController.Register) user.GET("/status", userController.Status) } } server.Run() }