54 lines
1.4 KiB
Go
54 lines
1.4 KiB
Go
package main
|
|
|
|
import (
|
|
"gitea.d3m0k1d.ru/d3m0k1d/d3m0k1d.ru/backend/docs"
|
|
"gitea.d3m0k1d.ru/d3m0k1d/d3m0k1d.ru/backend/internal/handlers"
|
|
"gitea.d3m0k1d.ru/d3m0k1d/d3m0k1d.ru/backend/internal/logger"
|
|
"gitea.d3m0k1d.ru/d3m0k1d/d3m0k1d.ru/backend/internal/storage"
|
|
"github.com/gin-gonic/gin"
|
|
swaggerFiles "github.com/swaggo/files"
|
|
ginSwagger "github.com/swaggo/gin-swagger"
|
|
)
|
|
|
|
// @securityDefinitions.apikey Bearer
|
|
// @in header
|
|
// @name Authorization
|
|
// @description Type "Bearer" followed by a space and the JWT token.
|
|
func main() {
|
|
log := logger.New(false)
|
|
|
|
db, err := storage.OpenSession()
|
|
if err != nil {
|
|
log.Error("Failed to open database", "error", err)
|
|
panic(err)
|
|
}
|
|
defer func() {
|
|
err := db.Close()
|
|
if err != nil {
|
|
log.Error("Failed to close database", "error", err)
|
|
}
|
|
}()
|
|
if err := storage.CreateTables(db); err != nil {
|
|
log.Error("Failed to create tables", "error", err)
|
|
panic(err)
|
|
}
|
|
|
|
router := gin.Default()
|
|
|
|
// Swagger config
|
|
docs.SwaggerInfo.BasePath = "/api/v1"
|
|
docs.SwaggerInfo.Title = "d3m0k1d.ru API"
|
|
docs.SwaggerInfo.Version = "1.0"
|
|
docs.SwaggerInfo.Description = "API for d3m0k1d.ru"
|
|
docs.SwaggerInfo.Schemes = []string{"http"}
|
|
router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
|
|
|
handlers.Register(router, db)
|
|
|
|
log.Info("Starting server on :8080...")
|
|
if err := router.Run(":8080"); err != nil {
|
|
log.Error("Error starting server", "error", err)
|
|
panic(err)
|
|
}
|
|
}
|