feat: command validation

This commit is contained in:
IliaDenisov
2026-02-10 18:31:53 +03:00
parent b5400bd61e
commit 6c8384ce7a
6 changed files with 178 additions and 30 deletions
+13 -3
View File
@@ -2,6 +2,7 @@ package router
import (
"fmt"
"io"
"net/http"
"os"
@@ -25,6 +26,7 @@ func (r Router) Run() error {
}
func NewRouter() Router {
gin.SetMode(gin.ReleaseMode)
return NewRouterExecutor(handler.NewDefaultExecutor())
}
@@ -33,17 +35,25 @@ func NewRouterExecutor(executor handler.CommandExecutor) Router {
}
func setupRouter(executor handler.CommandExecutor) *gin.Engine {
gin.SetMode(gin.ReleaseMode)
r := gin.New()
// Logger middleware will write the logs to gin.DefaultWriter even if you set with GIN_MODE=release.
r.Use(gin.LoggerWithFormatter(logFormatter))
logConfig := &gin.LoggerConfig{Formatter: logFormatter}
if gin.Mode() != gin.DebugMode {
logConfig.Output = io.Discard
}
r.Use(gin.LoggerWithConfig(*logConfig))
// Recovery middleware recovers from any panics and writes a 500 if there was one.
r.Use(gin.CustomRecovery(recoveryHandler))
if v, ok := binding.Validator.Engine().(*validator.Validate); ok {
v.RegisterValidation("notblank", notBlankStringValidator)
if err := v.RegisterValidation("notblank", notBlankStringValidator); err != nil {
panic(err)
}
if err := v.RegisterValidation("ammoWeapons", armamentWithWeaponsValidator); err != nil {
panic(err)
}
}
groupV1 := r.Group("/api/v1")