| @@ -456,6 +456,48 @@ func (c *ObjectService) DeleteByPath(req ObjectDeleteByPath) error { | |||||
| return jsonResp.ToError() | return jsonResp.ToError() | ||||
| } | } | ||||
| const ObjectClonePath = "/object/clone" | |||||
| type ObjectClone struct { | |||||
| UserID cdssdk.UserID `json:"userID" binding:"required"` | |||||
| Clonings []CloningObject `json:"clonings" binding:"required"` | |||||
| } | |||||
| type CloningObject struct { | |||||
| ObjectID cdssdk.ObjectID `json:"objectID" binding:"required"` | |||||
| NewPath string `json:"newPath" binding:"required"` | |||||
| NewPackageID cdssdk.PackageID `json:"newPackageID" binding:"required"` | |||||
| } | |||||
| type ObjectCloneResp struct { | |||||
| Objects []*cdssdk.Object `json:"objects"` | |||||
| } | |||||
| func (c *ObjectService) Clone(req ObjectClone) (*ObjectCloneResp, error) { | |||||
| url, err := url.JoinPath(c.baseURL, ObjectClonePath) | |||||
| if err != nil { | |||||
| return nil, err | |||||
| } | |||||
| resp, err := http2.PostJSON(url, http2.RequestParam{ | |||||
| Body: req, | |||||
| }) | |||||
| if err != nil { | |||||
| return nil, err | |||||
| } | |||||
| jsonResp, err := ParseJSONResponse[response[ObjectCloneResp]](resp) | |||||
| if err != nil { | |||||
| return nil, err | |||||
| } | |||||
| if jsonResp.Code == errorcode.OK { | |||||
| return &jsonResp.Data, nil | |||||
| } | |||||
| return nil, jsonResp.ToError() | |||||
| } | |||||
| const ObjectGetPackageObjectsPath = "/object/getPackageObjects" | const ObjectGetPackageObjectsPath = "/object/getPackageObjects" | ||||
| type ObjectGetPackageObjects struct { | type ObjectGetPackageObjects struct { | ||||