response.go 962 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package response
  2. import (
  3. "errors"
  4. "github.com/gin-gonic/gin"
  5. "net/http"
  6. )
  7. type response struct {
  8. Code int `json:"code"`
  9. Message string `json:"message"`
  10. Data interface{} `json:"data"`
  11. }
  12. func HandleSuccess(ctx *gin.Context, data interface{}) {
  13. if data == nil {
  14. data = map[string]string{}
  15. }
  16. resp := response{Code: ErrSuccess.Code, Message: ErrSuccess.Message, Data: data}
  17. ctx.JSON(http.StatusOK, resp)
  18. }
  19. func HandleError(ctx *gin.Context, httpCode int, err error, data interface{}) {
  20. if data == nil {
  21. data = map[string]string{}
  22. }
  23. resp := response{Code: errorCodeMap[err], Message: err.Error(), Data: data}
  24. ctx.JSON(httpCode, resp)
  25. }
  26. type Error struct {
  27. Code int
  28. Message string
  29. }
  30. var errorCodeMap = map[error]int{}
  31. func newError(code int, msg string) *Error {
  32. err := errors.New(msg)
  33. errorCodeMap[err] = code
  34. return &Error{
  35. Code: code,
  36. Message: msg,
  37. }
  38. }
  39. func (e Error) Error() string {
  40. return e.Message
  41. }