You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

jobset.go 3.1 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. package schsdk
  2. import (
  3. "fmt"
  4. "net/url"
  5. "strings"
  6. "gitlink.org.cn/cloudream/common/consts/errorcode"
  7. cdssdk "gitlink.org.cn/cloudream/common/sdks/storage"
  8. myhttp "gitlink.org.cn/cloudream/common/utils/http"
  9. "gitlink.org.cn/cloudream/common/utils/serder"
  10. )
  11. type JobSetSumbitReq struct {
  12. JobSetInfo
  13. }
  14. type JobSetSumbitResp struct {
  15. JobSetID string `json:"jobSetID"`
  16. FilesUploadScheme JobSetFilesUploadScheme `json:"filesUploadScheme"`
  17. }
  18. func (c *Client) JobSetSumbit(req JobSetSumbitReq) (*JobSetSumbitResp, error) {
  19. url, err := url.JoinPath(c.baseURL, "/jobSet/submit")
  20. if err != nil {
  21. return nil, err
  22. }
  23. resp, err := myhttp.PostJSON(url, myhttp.RequestParam{
  24. Body: req,
  25. })
  26. if err != nil {
  27. return nil, err
  28. }
  29. contType := resp.Header.Get("Content-Type")
  30. if strings.Contains(contType, myhttp.ContentTypeJSON) {
  31. var codeResp response[JobSetSumbitResp]
  32. if err := serder.JSONToObjectStream(resp.Body, &codeResp); err != nil {
  33. return nil, fmt.Errorf("parsing response: %w", err)
  34. }
  35. if codeResp.Code == errorcode.OK {
  36. return &codeResp.Data, nil
  37. }
  38. return nil, codeResp.ToError()
  39. }
  40. return nil, fmt.Errorf("unknow response content type: %s", contType)
  41. }
  42. type JobSetLocalFileUploadedReq struct {
  43. JobSetID string `json:"jobSetID"`
  44. LocalPath string `json:"localPath"`
  45. Error string `json:"error"`
  46. PackageID cdssdk.PackageID `json:"packageID"`
  47. }
  48. func (c *Client) JobSetLocalFileUploaded(req JobSetLocalFileUploadedReq) error {
  49. url, err := url.JoinPath(c.baseURL, "/jobSet/localFileUploaded")
  50. if err != nil {
  51. return err
  52. }
  53. resp, err := myhttp.PostJSON(url, myhttp.RequestParam{
  54. Body: req,
  55. })
  56. if err != nil {
  57. return err
  58. }
  59. contType := resp.Header.Get("Content-Type")
  60. if strings.Contains(contType, myhttp.ContentTypeJSON) {
  61. var codeResp response[any]
  62. if err := serder.JSONToObjectStream(resp.Body, &codeResp); err != nil {
  63. return fmt.Errorf("parsing response: %w", err)
  64. }
  65. if codeResp.Code == errorcode.OK {
  66. return nil
  67. }
  68. return codeResp.ToError()
  69. }
  70. return fmt.Errorf("unknow response content type: %s", contType)
  71. }
  72. type JobSetGetServiceListReq struct {
  73. JobSetID
  74. }
  75. type JobSetGetServiceListResp struct {
  76. ServiceList []JobSetServiceInfo `json:"serviceList"`
  77. }
  78. func (c *Client) JobSetGetServiceList(req JobSetGetServiceListReq) (*JobSetGetServiceListResp, error) {
  79. url, err := url.JoinPath(c.baseURL, "/jobSet/getServiceList")
  80. if err != nil {
  81. return nil, err
  82. }
  83. resp, err := myhttp.GetJSON(url, myhttp.RequestParam{
  84. Body: req,
  85. })
  86. if err != nil {
  87. return nil, err
  88. }
  89. contType := resp.Header.Get("Content-Type")
  90. if strings.Contains(contType, myhttp.ContentTypeJSON) {
  91. var codeResp response[JobSetGetServiceListResp]
  92. if err := serder.JSONToObjectStream(resp.Body, &codeResp); err != nil {
  93. return nil, fmt.Errorf("parsing response: %w", err)
  94. }
  95. if codeResp.Code == errorcode.OK {
  96. return &codeResp.Data, nil
  97. }
  98. return nil, codeResp.ToError()
  99. }
  100. return nil, fmt.Errorf("unknow response content type: %s", contType)
  101. }