64 lines
1.7 KiB
Plaintext
64 lines
1.7 KiB
Plaintext
syntax = "v1"
|
||
|
||
@server (
|
||
prefix: /gapi/task/v1
|
||
group: task
|
||
)
|
||
service novatask {
|
||
@doc "获取任务列表"
|
||
@handler GetTaskList
|
||
get /tasks (GetTaskListReq) returns (GetTaskListResp)
|
||
}
|
||
|
||
@server (
|
||
prefix: /gapi/task/v1
|
||
group: task
|
||
jwt: Auth
|
||
)
|
||
service novatask {
|
||
@doc "校验任务结果"
|
||
@handler VerifyTaskResult
|
||
get /task/:id (TaskIdPath) returns (VerifyTaskResultResp)
|
||
|
||
@doc "领取任务奖励"
|
||
@handler GetTaskReward
|
||
get /reward/:id (TaskIdPath) returns (GetTaskRewardResp)
|
||
}
|
||
|
||
type GetTaskListReq {
|
||
CommunityId uint `form:"community_id,optional"` // 所属社区ID
|
||
}
|
||
|
||
type Task {
|
||
Id uint `json:"id"` // 任务ID
|
||
CommunityId uint `json:"community_id"` // 所属社区ID
|
||
Title string `json:"title"` // 任务标题
|
||
SubTitle string `json:"sub_title"` // 副标题
|
||
Description string `json:"description"` // 任务描述
|
||
Points int `json:"points"` // 任务积分
|
||
ButtonText string `json:"button_text"` // 按钮文字
|
||
Type int8 `json:"type"` // 任务类型: 0=follow_twitter,1=bind_twitter,2=cast_twitter,3=publish_twitter,4=repost_twitter,5=watch_youtube,6=follow_youtube,7=bind_discord,8=join_telegram,9=daily_pay
|
||
Url string `json:"url"` // 跳转链接
|
||
Status int8 `json:"status"` // 任务状态: 0=不启用,1=启用
|
||
StartAt string `json:"start_at"` // 开始时间
|
||
EndAt string `json:"end_at"` // 结束时间
|
||
FinishState int8 `json:"finish_state"` // 0:未完成 1:待校验 2:已完成未领取 3:已领取
|
||
}
|
||
|
||
type GetTaskListResp {
|
||
Tasks []Task `json:"tasks"`
|
||
}
|
||
|
||
type TaskIdPath {
|
||
ID uint `path:"id"` // 任务ID
|
||
}
|
||
|
||
type VerifyTaskResultResp {
|
||
Finish bool `json:"finish"` // 是否完成
|
||
}
|
||
|
||
type GetTaskRewardResp {
|
||
Points int `json:"points"` // 积分
|
||
}
|
||
|