sql_executor.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package domain_gateway
  2. import (
  3. "git.sxidc.com/go-framework/baize/framework/core/api"
  4. "git.sxidc.com/go-framework/baize/framework/gateway"
  5. "git.sxidc.com/service-supports/fserr"
  6. "net/http"
  7. )
  8. func SqlExecutorGateway(baseUrlNoUrlPrefix string, builder *gateway.Builder) {
  9. builder.
  10. Url(http.MethodPost, "/sql/execute").
  11. Request(func(c *api.Context, historyRequests []gateway.BuilderRequest, resultMap map[string]any) (gateway.BuilderRequest, error) {
  12. bodyMap, err := gateway.AddJsonBodyTenantIDAndUserID(c, "", "executorId")
  13. if err != nil {
  14. return nil, err
  15. }
  16. userInfo := c.GetUserInfo()
  17. if userInfo == nil {
  18. bodyMap["executorName"] = "guest"
  19. } else {
  20. bodyMap["executorName"] = userInfo.GetName()
  21. }
  22. urlPrefixValue, ok := bodyMap["urlPrefix"]
  23. if !ok {
  24. return nil, fserr.New("没有传递服务名")
  25. }
  26. urlPrefix, ok := urlPrefixValue.(string)
  27. if !ok {
  28. return nil, fserr.New("服务名不是string类型")
  29. }
  30. delete(bodyMap, "urlPrefix")
  31. return &gateway.PostRequest{
  32. Url: baseUrlNoUrlPrefix + "/" + urlPrefix + "/api/sql/execute",
  33. Body: bodyMap,
  34. }, nil
  35. }, nil).
  36. Build()
  37. builder.
  38. Url(http.MethodGet, "/sql/execute/log").
  39. Request(func(c *api.Context, historyRequests []gateway.BuilderRequest, resultMap map[string]any) (gateway.BuilderRequest, error) {
  40. queryPrams, err := gateway.AddQueryParamsTenantIDAndUserID(c, "", "executorId")
  41. if err != nil {
  42. return nil, err
  43. }
  44. urlPrefix, ok := queryPrams["urlPrefix"]
  45. if !ok {
  46. return nil, fserr.New("没有传递服务名")
  47. }
  48. delete(queryPrams, "urlPrefix")
  49. return &gateway.GetRequest{
  50. Url: baseUrlNoUrlPrefix + "/" + urlPrefix + "/api/sql/execute/log",
  51. QueryParams: queryPrams,
  52. }, nil
  53. }, nil).
  54. Build()
  55. }