Browse Source

feat: add error response more clear

pull/3/head
Aldino Kemal 4 years ago
parent
commit
7a96d3811c
  1. 4
      main.go
  2. 31
      middleware/recovery.go

4
main.go

@ -3,11 +3,11 @@ package main
import ( import (
"fmt" "fmt"
"github.com/aldinokemal/go-whatsapp-web-multidevice/controllers" "github.com/aldinokemal/go-whatsapp-web-multidevice/controllers"
"github.com/aldinokemal/go-whatsapp-web-multidevice/middleware"
"github.com/aldinokemal/go-whatsapp-web-multidevice/services" "github.com/aldinokemal/go-whatsapp-web-multidevice/services"
"github.com/aldinokemal/go-whatsapp-web-multidevice/utils" "github.com/aldinokemal/go-whatsapp-web-multidevice/utils"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/logger" "github.com/gofiber/fiber/v2/middleware/logger"
"github.com/gofiber/fiber/v2/middleware/recover"
"github.com/gofiber/template/html" "github.com/gofiber/template/html"
_ "github.com/mattn/go-sqlite3" _ "github.com/mattn/go-sqlite3"
) )
@ -19,7 +19,7 @@ func main() {
BodyLimit: 10 * 1024 * 1024, BodyLimit: 10 * 1024 * 1024,
}) })
app.Static("/statics", "./statics") app.Static("/statics", "./statics")
app.Use(recover.New())
app.Use(middleware.Recovery())
app.Use(logger.New()) app.Use(logger.New())
db := utils.InitWaDB() db := utils.InitWaDB()

31
middleware/recovery.go

@ -0,0 +1,31 @@
package middleware
import (
"fmt"
"github.com/aldinokemal/go-whatsapp-web-multidevice/utils"
"github.com/gofiber/fiber/v2"
)
func Recovery() fiber.Handler {
return func(ctx *fiber.Ctx) error {
defer func() {
err := recover()
if err != nil {
var res utils.ResponseData
dt, ok := err.(utils.ValidationError)
if ok {
res.Code = 400
res.Message = dt.Message
} else {
res.Code = 500
res.Message = fmt.Sprintf("%s", err)
}
_ = ctx.Status(res.Code).JSON(res)
}
}()
return ctx.Next()
}
}
Loading…
Cancel
Save