27 lines
498 B
Go
27 lines
498 B
Go
package pkg
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
)
|
|
|
|
func HandleResponse(c *fiber.Ctx, data interface{}, e error) (err error) {
|
|
if e != nil {
|
|
return e
|
|
}
|
|
switch data.(type) {
|
|
case error:
|
|
err = data.(error)
|
|
case int, int32, int64, float32, float64, string, bool:
|
|
c.Response().SetBody([]byte(fmt.Sprintf("%v", data)))
|
|
case []byte:
|
|
c.Response().SetBody(data.([]byte))
|
|
default:
|
|
dataByte, _ := json.Marshal(data)
|
|
c.Response().SetBody(dataByte)
|
|
}
|
|
return
|
|
}
|