feat: command validation
This commit is contained in:
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user