package api import ( "net/http" "gitlink.org.cn/cloudream/common/sdks" clitypes "gitlink.org.cn/cloudream/jcs-pub/client/types" ) type SpaceSyncerService struct { *Client } func (c *Client) SpaceSyncer() *SpaceSyncerService { return &SpaceSyncerService{ Client: c, } } const SpaceSyncerCreateTaskPath = "/spaceSyncer/createTask" type SpaceSyncerCreateTask struct { Trigger clitypes.SpaceSyncTrigger `json:"trigger" binding:"required"` Mode clitypes.SpaceSyncMode `json:"mode" binding:"required"` Filters []clitypes.SpaceSyncFilter `json:"filters"` Options clitypes.SpaceSyncOptions `json:"options" binding:"required"` SrcUserSpaceID clitypes.UserSpaceID `json:"srcUserSpaceID" binding:"required"` SrcPath string `json:"srcPath"` DestUserSpaceIDs []clitypes.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 clitypes.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 clitypes.SpaceSyncTaskID `url:"taskID" binding:"required"` } func (r *SpaceSyncerGetTask) MakeParam() *sdks.RequestParam { return sdks.MakeQueryParam(http.MethodGet, SpaceSyncerGetTaskPath, r) } type SpaceSyncerGetTaskResp struct { Task clitypes.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 clitypes.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{}) }