package api import ( "net/http" "gitlink.org.cn/cloudream/common/sdks" jcstypes "gitlink.org.cn/cloudream/jcs-pub/common/types" ) type SpaceSyncerService struct { *Client } func (c *Client) SpaceSyncer() *SpaceSyncerService { return &SpaceSyncerService{ Client: c, } } const SpaceSyncerCreateTaskPath = "/spaceSyncer/createTask" type SpaceSyncerCreateTask struct { Trigger jcstypes.SpaceSyncTrigger `json:"trigger" binding:"required"` Mode jcstypes.SpaceSyncMode `json:"mode" binding:"required"` Filters []jcstypes.SpaceSyncFilter `json:"filters"` Options jcstypes.SpaceSyncOptions `json:"options" binding:"required"` SrcUserSpaceID jcstypes.UserSpaceID `json:"srcUserSpaceID" binding:"required"` SrcPath string `json:"srcPath"` DestUserSpaceIDs []jcstypes.UserSpaceID `json:"destUserSpaceIDs" binding:"required"` DestPathes []string `json:"destPathes" binding:"required"` } func (r *SpaceSyncerCreateTask) MakeParam() *sdks.RequestParam { return sdks.MakeJSONParam(http.MethodPost, SpaceSyncerCreateTaskPath, r) } type SpaceSyncerCreateTaskResp struct { Task jcstypes.SpaceSyncTask `json:"task"` } func (r *SpaceSyncerCreateTaskResp) ParseResponse(resp *http.Response) error { return sdks.ParseCodeDataJSONResponse(resp, r) } func (c *SpaceSyncerService) CreateTask(req SpaceSyncerCreateTask) (*SpaceSyncerCreateTaskResp, error) { return JSONAPI(&c.cfg, c.httpCli, &req, &SpaceSyncerCreateTaskResp{}) } const SpaceSyncerGetTaskPath = "/spaceSyncer/getTask" type SpaceSyncerGetTask struct { TaskID jcstypes.SpaceSyncTaskID `url:"taskID" binding:"required"` } func (r *SpaceSyncerGetTask) MakeParam() *sdks.RequestParam { return sdks.MakeQueryParam(http.MethodGet, SpaceSyncerGetTaskPath, r) } type SpaceSyncerGetTaskResp struct { Task jcstypes.SpaceSyncTask `json:"task"` } func (r *SpaceSyncerGetTaskResp) ParseResponse(resp *http.Response) error { return sdks.ParseCodeDataJSONResponse(resp, r) } func (c *SpaceSyncerService) GetTask(req SpaceSyncerGetTask) (*SpaceSyncerGetTaskResp, error) { return JSONAPI(&c.cfg, c.httpCli, &req, &SpaceSyncerGetTaskResp{}) } const SpaceSyncerCancelTaskPath = "/spaceSyncer/cancelTask" type SpaceSyncerCancelTask struct { TaskID jcstypes.SpaceSyncTaskID `json:"taskID" binding:"required"` } func (r *SpaceSyncerCancelTask) MakeParam() *sdks.RequestParam { return sdks.MakeJSONParam(http.MethodPost, SpaceSyncerCancelTaskPath, r) } type SpaceSyncerCancelTaskResp struct{} func (r *SpaceSyncerCancelTaskResp) ParseResponse(resp *http.Response) error { return sdks.ParseCodeDataJSONResponse(resp, r) } func (c *SpaceSyncerService) CancelTask(req SpaceSyncerCancelTask) (*SpaceSyncerCancelTaskResp, error) { return JSONAPI(&c.cfg, c.httpCli, &req, &SpaceSyncerCancelTaskResp{}) }