aboutsummaryrefslogtreecommitdiff
path: root/routes.go
diff options
context:
space:
mode:
Diffstat (limited to 'routes.go')
-rw-r--r--routes.go33
1 files changed, 33 insertions, 0 deletions
diff --git a/routes.go b/routes.go
new file mode 100644
index 0000000..f44cff7
--- /dev/null
+++ b/routes.go
@@ -0,0 +1,33 @@
+package main
+
+import (
+ "fmt"
+ "github.com/gin-gonic/gin"
+ "github.com/go-playground/validator/v10"
+ "log"
+ "net/http"
+)
+
+func ApplicationRoutes(engine *gin.Engine) {
+ engine.Static("/", "./frontend/build")
+
+ api := engine.Group("/api")
+ {
+ api.POST("/rules", func(c *gin.Context) {
+ var rule Rule
+
+ if err := c.ShouldBindJSON(&rule); err != nil {
+ for _, fieldErr := range err.(validator.ValidationErrors) {
+ log.Println(fieldErr)
+ c.JSON(http.StatusBadRequest, gin.H{
+ "error": fmt.Sprintf("field '%v' does not respect the %v(%v) rule",
+ fieldErr.Field(), fieldErr.Tag(), fieldErr.Param()),
+ })
+ return // exit on first error
+ }
+ }
+
+ c.JSON(200, rule)
+ })
+ }
+}