builder_params.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package gateway
  2. import (
  3. "git.sxidc.com/go-framework/baize/framework/core/api"
  4. "git.sxidc.com/go-framework/baize/framework/core/infrastructure/logger"
  5. "git.sxidc.com/service-supports/fserr"
  6. "net/http"
  7. )
  8. type builderParams struct {
  9. httpMethod string
  10. relativePath string
  11. requestItems []*builderRequestItem
  12. requestParamsBindCallback RequestParamsBindCallback
  13. globalRequestCallback GlobalRequestCallback
  14. responseSuccessCallback ResponseSuccessCallback
  15. responseErrorCallback ResponseErrorCallback
  16. }
  17. func newBuilderParams() *builderParams {
  18. return &builderParams{
  19. httpMethod: "",
  20. relativePath: "",
  21. requestItems: make([]*builderRequestItem, 0),
  22. globalRequestCallback: nil,
  23. responseSuccessCallback: func(c *api.Context, historyRequests []BuilderRequest, customResultMap map[string]any) {
  24. c.Status(http.StatusOK)
  25. if historyRequests != nil && len(historyRequests) != 0 {
  26. _, err := c.Writer.Write(historyRequests[len(historyRequests)-1].Response().Body())
  27. if err != nil {
  28. logger.GetInstance().Error(fserr.New(err.Error()))
  29. c.AbortWithStatus(http.StatusInternalServerError)
  30. return
  31. }
  32. }
  33. c.Writer.Flush()
  34. },
  35. responseErrorCallback: func(c *api.Context, err error) {
  36. if err == nil {
  37. return
  38. }
  39. resp := make(map[string]any)
  40. logger.GetInstance().Error(err)
  41. serviceErr := fserr.ParseCode(err)
  42. resp["success"] = false
  43. resp["errCode"] = serviceErr.BusinessCode
  44. resp["msg"] = serviceErr.Msg
  45. c.JSON(http.StatusOK, resp)
  46. },
  47. }
  48. }
  49. func (params *builderParams) copy() *builderParams {
  50. return &builderParams{
  51. httpMethod: params.httpMethod,
  52. relativePath: params.relativePath,
  53. requestItems: params.requestItems,
  54. globalRequestCallback: params.globalRequestCallback,
  55. responseSuccessCallback: params.responseSuccessCallback,
  56. responseErrorCallback: params.responseErrorCallback,
  57. }
  58. }