74 lines
1.6 KiB
Go
74 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))
|
|
|
|
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()
|
|
}
|