Skip to content

Commit

Permalink
Created validator util
Browse files Browse the repository at this point in the history
  • Loading branch information
pacholoamit committed Jun 28, 2022
1 parent 6bf714c commit 28259ce
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 5 deletions.
4 changes: 4 additions & 0 deletions cmd/main.go
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
package main

import (
"github.com/go-playground/validator/v10"
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v4/middleware"
"github.com/pacholoamit/GO-TASK-MGR/pkg/routes"
"github.com/pacholoamit/GO-TASK-MGR/pkg/utils"
)

func main() {
e := echo.New()

e.Validator = &utils.CustomValidator{Validator: validator.New()}

e.Use(middleware.Secure())
e.Use(middleware.Recover()) // Recover from panics
e.Use(middleware.GzipWithConfig(middleware.GzipConfig{Level: 5}))
Expand Down
6 changes: 3 additions & 3 deletions pkg/models/models.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@ import "gorm.io/gorm"

type Project struct {
gorm.Model
Name string `json:"name" form:"name"`
Name string `json:"name" form:"name" validate:"required"`
Color string `json:"color" form:"color"`
}

type Projects []Project

type Task struct {
gorm.Model
Title string `json:"title" form:"title"`
Description string `json:"description" form:"description"`
Title string `json:"title" form:"title" validate:"required"`
Description string `json:"description" form:"description" validate:"required"`
Status string `json:"status" form:"status"`
Label string `json:"label" form:"label"`
ProjectID int
Expand Down
3 changes: 1 addition & 2 deletions pkg/repositories/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,5 @@ var db *gorm.DB
func init() {
lib.Connect()
db = lib.GetDB()
db.AutoMigrate(&models.Task{})
db.AutoMigrate(&models.Project{})
db.AutoMigrate(&models.Task{}, &models.Project{})
}
19 changes: 19 additions & 0 deletions pkg/utils/validator.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package utils

import (
"net/http"

"github.com/go-playground/validator/v10"
"github.com/labstack/echo/v4"
)

type CustomValidator struct {
Validator *validator.Validate
}

func (cv *CustomValidator) Validate(i interface{}) error {
if err := cv.Validator.Struct(i); err != nil {
return echo.NewHTTPError(http.StatusBadRequest, err.Error())
}
return nil
}

0 comments on commit 28259ce

Please sign in to comment.