client.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package managesdk
  2. import (
  3. "errors"
  4. "git.sxidc.com/go-tools/api_binding/http_binding/response"
  5. "git.sxidc.com/go-tools/utils/http_client"
  6. "time"
  7. )
  8. var timeoutDuration = TimeoutSec * time.Second
  9. var baseUrl string
  10. var httpClient *http_client.Client
  11. const (
  12. TimeoutSec = 30
  13. servicePrefix = "/api/v1"
  14. )
  15. func Destroy() {
  16. if httpClient == nil {
  17. return
  18. }
  19. http_client.Destroy(httpClient)
  20. httpClient = nil
  21. }
  22. func Init(configBaseUrl string, serviceType ServiceType) error {
  23. var defaultBaseURL string
  24. switch serviceType {
  25. case ServiceTypePerson:
  26. defaultBaseURL = DefaultPersonBaseURL
  27. case ServiceTypeResource:
  28. defaultBaseURL = DefaultResourceBaseURL
  29. case ServiceTypeActivity:
  30. defaultBaseURL = DefaultActivityBaseURL
  31. case ServiceTypePlan:
  32. defaultBaseURL = DefaultPlanBaseURL
  33. default:
  34. defaultBaseURL = DefaultPersonBaseURL
  35. }
  36. if configBaseUrl != "" {
  37. baseUrl = configBaseUrl + servicePrefix
  38. } else {
  39. baseUrl = defaultBaseURL + servicePrefix
  40. }
  41. if httpClient == nil {
  42. httpClient = http_client.New()
  43. }
  44. return nil
  45. }
  46. func getVersion() (map[string]any, error) {
  47. getResponse, err := httpClient.NewRequest(http_client.WithNewRequestTimeout(timeoutDuration)).
  48. Get(baseUrl + "/version")
  49. if err != nil {
  50. return nil, err
  51. }
  52. resp := new(response.InfoResponse[map[string]any])
  53. err = getResponse.Json(resp)
  54. if err != nil {
  55. return nil, err
  56. }
  57. if !resp.Success {
  58. return nil, errors.New(resp.Msg)
  59. }
  60. return resp.Info, nil
  61. }