58 lines
1.2 KiB
Plaintext
58 lines
1.2 KiB
Plaintext
syntax = "v1"
|
|
|
|
@server (
|
|
prefix: /api/task/v1
|
|
group: task
|
|
jwt: Auth
|
|
)
|
|
service novatask {
|
|
@doc "获取任务列表"
|
|
@handler GetTaskList
|
|
get /tasks (GetTaskListReq) returns (GetTaskListResp)
|
|
|
|
@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"`
|
|
}
|
|
|
|
type Task {
|
|
Id uint `json:"id"`
|
|
CommunityId uint `json:"community_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"`
|
|
Url string `json:"url"`
|
|
Status int8 `json:"status"`
|
|
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"`
|
|
}
|
|
|
|
type VerifyTaskResultResp {
|
|
Finish bool `json:"finish"`
|
|
}
|
|
|
|
type GetTaskRewardResp {
|
|
Points int `json:"points"`
|
|
}
|
|
|