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.

node.go 876 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package cdsapi
  2. import (
  3. "net/url"
  4. "gitlink.org.cn/cloudream/common/consts/errorcode"
  5. cdssdk "gitlink.org.cn/cloudream/common/sdks/storage"
  6. "gitlink.org.cn/cloudream/common/utils/http2"
  7. )
  8. var NodeGetNodesPath = "/node/getNodes"
  9. type NodeGetNodesReq struct {
  10. NodeIDs []cdssdk.NodeID `json:"nodeIDs"`
  11. }
  12. type NodeGetNodesResp struct {
  13. Nodes []cdssdk.Node `json:"nodes"`
  14. }
  15. func (c *Client) NodeGetNodes(req NodeGetNodesReq) (*NodeGetNodesResp, error) {
  16. url, err := url.JoinPath(c.baseURL, NodeGetNodesPath)
  17. if err != nil {
  18. return nil, err
  19. }
  20. resp, err := http2.GetForm(url, http2.RequestParam{
  21. Query: req,
  22. })
  23. if err != nil {
  24. return nil, err
  25. }
  26. jsonResp, err := ParseJSONResponse[response[NodeGetNodesResp]](resp)
  27. if err != nil {
  28. return nil, err
  29. }
  30. if jsonResp.Code == errorcode.OK {
  31. return &jsonResp.Data, nil
  32. }
  33. return nil, jsonResp.ToError()
  34. }