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) }