44 lines
916 B
Go
44 lines
916 B
Go
package response
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
|
|
"furtuna-be/internal/common/errors"
|
|
)
|
|
|
|
type response struct {
|
|
Status int `json:"status"`
|
|
Meta interface{} `json:"meta,omitempty"`
|
|
Message string `json:"message"`
|
|
Data interface{} `json:"data"`
|
|
Success bool `json:"success,omitempty"`
|
|
}
|
|
|
|
func ErrorWrapper(c *gin.Context, err error) {
|
|
var customError errors.Error
|
|
customError = errors.ErrorInternalServer
|
|
|
|
status := customError.MapErrorsToHTTPCode()
|
|
code := customError.MapErrorsToCode()
|
|
message := err.Error()
|
|
|
|
if validErr, ok := err.(errors.Error); ok {
|
|
status = validErr.MapErrorsToHTTPCode()
|
|
code = validErr.MapErrorsToCode()
|
|
|
|
if code.GetHTTPCode() != 0 {
|
|
status = code.GetHTTPCode()
|
|
}
|
|
|
|
message = code.GetMessage()
|
|
}
|
|
|
|
resp := BaseResponse{
|
|
ErrorMessage: err.Error(),
|
|
Code: code.GetCode(),
|
|
Message: message,
|
|
}
|
|
|
|
c.JSON(status, resp)
|
|
}
|