data_result.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package code
  2. import (
  3. cherryGin "github.com/cherry-game/components/gin"
  4. "github.com/gin-gonic/gin"
  5. )
  6. type DataResult struct {
  7. Code int32 `json:"code"`
  8. Message string `json:"message"`
  9. Data any `json:"data"`
  10. }
  11. func NewDataResult(code int32) DataResult {
  12. result := DataResult{
  13. Code: code,
  14. Message: GetMessage(code),
  15. Data: []string{},
  16. }
  17. return result
  18. }
  19. func (p *DataResult) SetCode(code int32) {
  20. p.Code = code
  21. p.Message = GetMessage(code)
  22. }
  23. func JSONResult(c *cherryGin.Context, statusCode int32, data ...any) {
  24. result := NewDataResult(statusCode)
  25. if len(data) > 0 {
  26. result.Data = data[0]
  27. }
  28. c.JSON200(result)
  29. }
  30. func JSONError(c *cherryGin.Context, message ...string) {
  31. result := NewDataResult(Error)
  32. if len(message) > 0 {
  33. result.Message = message[0]
  34. }
  35. c.JSON200(result)
  36. }
  37. func Direct404(c *cherryGin.Context, statusCode int32) {
  38. c.HTML200("404.html", gin.H{
  39. "title": "404",
  40. "message": GetMessage(statusCode),
  41. })
  42. }
  43. func Paging(c *cherryGin.Context, list any, count int64) {
  44. c.JSON200(gin.H{
  45. "code": 0,
  46. "msg": "",
  47. "count": count,
  48. "data": list,
  49. })
  50. }