builder_params.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. globalRequestCallbackFunc GlobalRequestCallbackFunc
  13. responseSuccessFunc ResponseSuccessFunc
  14. responseErrorFunc ResponseErrorFunc
  15. }
  16. func newBuilderParams() *builderParams {
  17. return &builderParams{
  18. httpMethod: "",
  19. relativePath: "",
  20. requestItems: make([]*builderRequestItem, 0),
  21. globalRequestCallbackFunc: nil,
  22. responseSuccessFunc: func(c *api.Context, historyRequests []BuilderRequest, customResultMap map[string]any) {
  23. c.Status(http.StatusOK)
  24. _, err := c.Writer.Write(historyRequests[len(historyRequests)-1].Response().Body())
  25. if err != nil {
  26. logger.GetInstance().Error(fserr.New(err.Error()))
  27. c.AbortWithStatus(http.StatusInternalServerError)
  28. return
  29. }
  30. c.Writer.Flush()
  31. },
  32. responseErrorFunc: func(c *api.Context, err error) {
  33. if err == nil {
  34. return
  35. }
  36. resp := make(map[string]any)
  37. logger.GetInstance().Error(err)
  38. serviceErr := fserr.ParseCode(err)
  39. resp["success"] = false
  40. resp["errCode"] = serviceErr.BusinessCode
  41. resp["msg"] = serviceErr.Msg
  42. c.JSON(http.StatusOK, resp)
  43. },
  44. }
  45. }
  46. func (params *builderParams) copy() *builderParams {
  47. return &builderParams{
  48. httpMethod: params.httpMethod,
  49. relativePath: params.relativePath,
  50. requestItems: params.requestItems,
  51. globalRequestCallbackFunc: params.globalRequestCallbackFunc,
  52. responseSuccessFunc: params.responseSuccessFunc,
  53. responseErrorFunc: params.responseErrorFunc,
  54. }
  55. }