60 lines
1.5 KiB
Plaintext
60 lines
1.5 KiB
Plaintext
|
|
syntax = "v1"
|
|||
|
|
|
|||
|
|
type (
|
|||
|
|
JobPublic {
|
|||
|
|
Id string `json:"id"`
|
|||
|
|
TemplateType string `json:"template_type"`
|
|||
|
|
Status string `json:"status"`
|
|||
|
|
ProgressSummary string `json:"progress_summary"`
|
|||
|
|
ProgressPercent int `json:"progress_percent"`
|
|||
|
|
Error string `json:"error,optional"`
|
|||
|
|
// 業務關聯(例:threads 帳號 id、人設 id)
|
|||
|
|
RefId string `json:"ref_id,optional"`
|
|||
|
|
// 任務 payload JSON(例:{"username":"x"})
|
|||
|
|
Payload string `json:"payload,optional"`
|
|||
|
|
// 排程執行時間 unix ns;0=立刻可領
|
|||
|
|
RunAfter int64 `json:"run_after,optional"`
|
|||
|
|
CreatedAt int64 `json:"created_at"`
|
|||
|
|
UpdatedAt int64 `json:"updated_at"`
|
|||
|
|
CompletedAt int64 `json:"completed_at,optional"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
JobListData {
|
|||
|
|
List []JobPublic `json:"list"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
JobIdPath {
|
|||
|
|
Id string `path:"id"`
|
|||
|
|
}
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
@server (
|
|||
|
|
jwt: Auth
|
|||
|
|
group: jobs
|
|||
|
|
prefix: /api/v1/jobs
|
|||
|
|
middleware: AuthJWT
|
|||
|
|
)
|
|||
|
|
service gateway {
|
|||
|
|
@handler ListJobs
|
|||
|
|
get / returns (JobListData)
|
|||
|
|
|
|||
|
|
@handler GetJob
|
|||
|
|
get /:id (JobIdPath) returns (JobPublic)
|
|||
|
|
|
|||
|
|
// 手動刪除任務(執行中不可刪;終態/已排程可刪)
|
|||
|
|
@handler DeleteJob
|
|||
|
|
delete /:id (JobIdPath) returns (OkData)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 管理員:產生 demo/測試任務(由 demo-worker 消費)
|
|||
|
|
@server (
|
|||
|
|
jwt: Auth
|
|||
|
|
group: jobs
|
|||
|
|
prefix: /api/v1/jobs
|
|||
|
|
middleware: AuthJWT,AdminAuth
|
|||
|
|
)
|
|||
|
|
service gateway {
|
|||
|
|
@handler StartDemoJob
|
|||
|
|
post /demo returns (JobPublic)
|
|||
|
|
}
|