geoGo/pkg/response.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)
}