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"` // 积分 }