utils.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package middleware
  2. import (
  3. "fmt"
  4. "github.com/gin-gonic/gin"
  5. "github.com/labring/aiproxy/core/common"
  6. "github.com/labring/aiproxy/core/relay/mode"
  7. relaymodel "github.com/labring/aiproxy/core/relay/model"
  8. )
  9. func AbortLogWithMessageWithMode(
  10. m mode.Mode,
  11. c *gin.Context,
  12. statusCode int,
  13. message string,
  14. opts ...relaymodel.WrapperErrorOptionFunc,
  15. ) {
  16. common.GetLogger(c).Error(message)
  17. AbortWithMessageWithMode(m, c, statusCode, message, opts...)
  18. }
  19. func AbortWithMessageWithMode(
  20. m mode.Mode,
  21. c *gin.Context,
  22. statusCode int,
  23. message string,
  24. opts ...relaymodel.WrapperErrorOptionFunc,
  25. ) {
  26. c.JSON(statusCode,
  27. relaymodel.WrapperErrorWithMessage(m, statusCode, message, opts...),
  28. )
  29. c.Abort()
  30. }
  31. func AbortLogWithMessage(
  32. c *gin.Context,
  33. statusCode int,
  34. message string,
  35. opts ...relaymodel.WrapperErrorOptionFunc,
  36. ) {
  37. common.GetLogger(c).Error(message)
  38. AbortWithMessage(c, statusCode, message, opts...)
  39. }
  40. func AbortWithMessage(
  41. c *gin.Context,
  42. statusCode int,
  43. message string,
  44. opts ...relaymodel.WrapperErrorOptionFunc,
  45. ) {
  46. c.JSON(statusCode,
  47. relaymodel.WrapperErrorWithMessage(GetMode(c), statusCode, message, opts...),
  48. )
  49. c.Abort()
  50. }
  51. func GetMode(c *gin.Context) mode.Mode {
  52. m, exists := c.Get(Mode)
  53. if !exists {
  54. return mode.Unknown
  55. }
  56. v, ok := m.(mode.Mode)
  57. if !ok {
  58. panic(fmt.Sprintf("mode type error: %T, %v", v, v))
  59. }
  60. return v
  61. }