diff options
Diffstat (limited to 'api/handlers/util.go')
| -rw-r--r-- | api/handlers/util.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/api/handlers/util.go b/api/handlers/util.go new file mode 100644 index 0000000..b0cf344 --- /dev/null +++ b/api/handlers/util.go @@ -0,0 +1,28 @@ +package handlers + +import ( + "fmt" + + "github.com/go-playground/validator/v10" + "github.com/gofiber/fiber/v2" +) + +var validate = validator.New(validator.WithRequiredStructEnabled()) + +func readBody(c *fiber.Ctx, request interface{}) error { + if err := c.BodyParser(request); err != nil { + return &fiber.Error{ + Code: fiber.StatusBadRequest, + Message: fmt.Errorf("Invalid request (%w)", err).Error(), + } + } + + if err := validate.Struct(request); err != nil { + return &fiber.Error{ + Code: fiber.StatusBadRequest, + Message: err.Error(), + } + } + + return nil +} |
