diff --git a/api/storage/cache.go b/api/storage/cache.go index 8ee9ac2..8a0ebcc 100644 --- a/api/storage/cache.go +++ b/api/storage/cache.go @@ -6,6 +6,7 @@ import ( "strings" "gitlink.org.cn/cloudream/common/consts/errorcode" + "gitlink.org.cn/cloudream/common/models" myhttp "gitlink.org.cn/cloudream/common/utils/http" "gitlink.org.cn/cloudream/common/utils/serder" ) @@ -15,33 +16,36 @@ type CacheMovePackageReq struct { PackageID int64 `json:"packageID"` NodeID int64 `json:"nodeID"` } +type CacheMovePackageResp struct { + CacheInfos []models.ObjectCacheInfo `json:"cacheInfos"` +} -func (c *Client) CacheMovePackage(req CacheMovePackageReq) error { +func (c *Client) CacheMovePackage(req CacheMovePackageReq) (*CacheMovePackageResp, error) { url, err := url.JoinPath(c.baseURL, "/cache/movePackage") if err != nil { - return err + return nil, err } resp, err := myhttp.PostJSON(url, myhttp.RequestParam{ Body: req, }) if err != nil { - return err + return nil, err } contType := resp.Header.Get("Content-Type") if strings.Contains(contType, myhttp.ContentTypeJSON) { - var codeResp response[any] + var codeResp response[CacheMovePackageResp] if err := serder.JSONToObjectStream(resp.Body, &codeResp); err != nil { - return fmt.Errorf("parsing response: %w", err) + return nil, fmt.Errorf("parsing response: %w", err) } if codeResp.Code == errorcode.OK { - return nil + return &codeResp.Data, nil } - return codeResp.ToError() + return nil, codeResp.ToError() } - return fmt.Errorf("unknow response content type: %s", contType) + return nil, fmt.Errorf("unknow response content type: %s", contType) } diff --git a/api/storage/storage_test.go b/api/storage/storage_test.go index 910a0d8..4d48bbb 100644 --- a/api/storage/storage_test.go +++ b/api/storage/storage_test.go @@ -144,7 +144,7 @@ func Test_Cache(t *testing.T) { }) So(err, ShouldBeNil) - err = cli.CacheMovePackage(CacheMovePackageReq{ + _, err = cli.CacheMovePackage(CacheMovePackageReq{ UserID: 0, PackageID: upResp.PackageID, NodeID: 1, diff --git a/models/storage.go b/models/storage.go index 74c9804..5438dcc 100644 --- a/models/storage.go +++ b/models/storage.go @@ -134,6 +134,13 @@ type ObjectCacheInfo struct { FileHash string `json:"fileHash"` } +func NewObjectCacheInfo(objectID int64, fileHash string) ObjectCacheInfo { + return ObjectCacheInfo{ + ObjectID: objectID, + FileHash: fileHash, + } +} + type CodeError struct { Code string `json:"code"` Message string `json:"message"`