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 2.2 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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. }