github.com/qiniu/go-sdk/v7@v7.27.0/storagev2/apis/get_async_fetch_task/api.go (about) 1 // THIS FILE IS GENERATED BY api-generator, DO NOT EDIT DIRECTLY! 2 3 // 查询异步抓取任务 4 package get_async_fetch_task 5 6 import ( 7 "encoding/json" 8 9 credentials "github.com/qiniu/go-sdk/v7/storagev2/credentials" 10 errors "github.com/qiniu/go-sdk/v7/storagev2/errors" 11 ) 12 13 // 调用 API 所用的请求 14 type Request struct { 15 Id string // 异步任务 ID 16 Credentials credentials.CredentialsProvider // 鉴权参数,用于生成鉴权凭证,如果为空,则使用 HTTPClientOptions 中的 CredentialsProvider 17 } 18 19 // 获取 API 所用的响应 20 type Response struct { 21 Id string // 异步任务 ID 22 QueuedTasksCount int64 // 当前任务前面的排队任务数量,`0` 表示当前任务正在进行,`-1` 表示任务已经至少被处理过一次(可能会进入重试逻辑) 23 } 24 25 // 返回的异步任务信息 26 type ( 27 FetchTaskInfo = Response 28 jsonResponse struct { 29 Id string `json:"id"` // 异步任务 ID 30 QueuedTasksCount int64 `json:"wait"` // 当前任务前面的排队任务数量,`0` 表示当前任务正在进行,`-1` 表示任务已经至少被处理过一次(可能会进入重试逻辑) 31 } 32 ) 33 34 func (j *Response) MarshalJSON() ([]byte, error) { 35 if err := j.validate(); err != nil { 36 return nil, err 37 } 38 return json.Marshal(&jsonResponse{Id: j.Id, QueuedTasksCount: j.QueuedTasksCount}) 39 } 40 41 func (j *Response) UnmarshalJSON(data []byte) error { 42 var nj jsonResponse 43 if err := json.Unmarshal(data, &nj); err != nil { 44 return err 45 } 46 j.Id = nj.Id 47 j.QueuedTasksCount = nj.QueuedTasksCount 48 return nil 49 } 50 51 func (j *Response) validate() error { 52 if j.Id == "" { 53 return errors.MissingRequiredFieldError{Name: "Id"} 54 } 55 if j.QueuedTasksCount == 0 { 56 return errors.MissingRequiredFieldError{Name: "QueuedTasksCount"} 57 } 58 return nil 59 }