response.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package response
  2. import (
  3. "fmt"
  4. "github.com/gin-gonic/gin"
  5. "github.com/lejianwen/rustdesk-api/v2/global"
  6. "github.com/nicksnyder/go-i18n/v2/i18n"
  7. "net/http"
  8. )
  9. type Response struct {
  10. Code int `json:"code"`
  11. Message string `json:"message"`
  12. Data interface{} `json:"data"`
  13. }
  14. type PageData struct {
  15. Page int `json:"page"`
  16. Total int `json:"total"`
  17. List interface{} `json:"list"`
  18. }
  19. type DataResponse struct {
  20. Total uint `json:"total"`
  21. Data interface{} `json:"data"`
  22. }
  23. type ErrorResponse struct {
  24. Error string `json:"error"`
  25. }
  26. func SendResponse(c *gin.Context, code int, message string, data interface{}) {
  27. c.JSON(http.StatusOK, Response{
  28. code, message, data,
  29. })
  30. }
  31. func Success(c *gin.Context, data interface{}) {
  32. SendResponse(c, 0, "success", data)
  33. }
  34. func Fail(c *gin.Context, code int, message string) {
  35. SendResponse(c, code, message, nil)
  36. }
  37. func Error(c *gin.Context, message string) {
  38. c.JSON(http.StatusBadRequest, ErrorResponse{
  39. Error: message,
  40. })
  41. }
  42. type ServerConfigResponse struct {
  43. IdServer string `json:"id_server"`
  44. Key string `json:"key"`
  45. RelayServer string `json:"relay_server"`
  46. ApiServer string `json:"api_server"`
  47. }
  48. func TranslateMsg(c *gin.Context, messageId string) string {
  49. localizer := global.Localizer(c.GetHeader("Accept-Language"))
  50. errMsg, err := localizer.LocalizeMessage(&i18n.Message{
  51. ID: messageId,
  52. })
  53. if err != nil {
  54. global.Logger.Warn("LocalizeMessage Error: " + err.Error())
  55. errMsg = messageId
  56. }
  57. return errMsg
  58. }
  59. func TranslateTempMsg(c *gin.Context, messageId string, templateData map[string]interface{}) string {
  60. localizer := global.Localizer(c.GetHeader("Accept-Language"))
  61. errMsg, err := localizer.Localize(&i18n.LocalizeConfig{
  62. DefaultMessage: &i18n.Message{
  63. ID: messageId,
  64. },
  65. TemplateData: templateData,
  66. })
  67. if err != nil {
  68. global.Logger.Warn("LocalizeMessage Error: " + err.Error())
  69. errMsg = messageId
  70. }
  71. return errMsg
  72. }
  73. func TranslateParamMsg(c *gin.Context, messageId string, params ...string) string {
  74. localizer := global.Localizer(c.GetHeader("Accept-Language"))
  75. templateData := make(map[string]interface{})
  76. for i, v := range params {
  77. k := fmt.Sprintf("P%d", i)
  78. templateData[k] = v
  79. }
  80. errMsg, err := localizer.Localize(&i18n.LocalizeConfig{
  81. DefaultMessage: &i18n.Message{
  82. ID: messageId,
  83. },
  84. TemplateData: templateData,
  85. })
  86. if err != nil {
  87. global.Logger.Warn("LocalizeMessage Error: " + err.Error())
  88. errMsg = messageId
  89. }
  90. return errMsg
  91. }