39 lines
808 B
Go
39 lines
808 B
Go
package pkg
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"os"
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
"github.com/gofiber/fiber/v2/log"
|
|
)
|
|
|
|
func HandleResponse(c *fiber.Ctx, data interface{}) (err error) {
|
|
if os.Getenv("env") == "unit_test" {
|
|
log.Debug(data)
|
|
}
|
|
switch data.(type) {
|
|
case error:
|
|
err = data.(error)
|
|
case int, int32, int64, float32, float64, string, bool:
|
|
c.Response().SetBody([]byte(fmt.Sprintf("%s", data)))
|
|
case []byte:
|
|
c.Response().SetBody(data.([]byte))
|
|
default:
|
|
dataByte, _ := json.Marshal(data)
|
|
c.Response().SetBody(dataByte)
|
|
}
|
|
return
|
|
}
|
|
|
|
func SuccessWithPageMsg(c *fiber.Ctx, list interface{}, total int64, page, pageSize int) error {
|
|
response := fiber.Map{
|
|
"list": list,
|
|
"total": total,
|
|
"page": page,
|
|
"pageSize": pageSize,
|
|
}
|
|
return HandleResponse(c, response)
|
|
}
|