159 lines
4.6 KiB
Plaintext
159 lines
4.6 KiB
Plaintext
syntax = "v1"
|
|
|
|
@server (
|
|
prefix: /gapi/task/v1
|
|
group: task
|
|
)
|
|
service novatask {
|
|
@doc "获取任务列表"
|
|
@handler GetTaskList
|
|
get /tasks (GetTaskListReq) returns (GetTaskListResp)
|
|
|
|
@doc "获取社区列表"
|
|
@handler GetCommunityList
|
|
get /community returns (GetCommunityListResp)
|
|
}
|
|
|
|
@server (
|
|
prefix: /gapi/task/v1
|
|
group: task
|
|
jwt: Auth
|
|
)
|
|
service novatask {
|
|
@doc "校验任务结果"
|
|
@handler VerifyTaskResult
|
|
get /task (VerifyTaskResultReq) returns (VerifyTaskResultResp)
|
|
|
|
@doc "领取任务奖励"
|
|
@handler GetTaskReward
|
|
get /reward (GetTaskRewardReq) returns (GetTaskRewardResp)
|
|
|
|
@doc "拉取玩家持有的nft列表"
|
|
@handler GetNftList
|
|
get /nfts (GetNftListReq) returns (UserNftList)
|
|
|
|
@doc "质押任务详情"
|
|
@handler GetStakeTaskDetail
|
|
get /task/stake returns (StakeTaskDetail)
|
|
|
|
@doc "质押NFT"
|
|
@handler StakeNft
|
|
post /nft/stake (StakeNftList)
|
|
|
|
@doc "取消质押NFT"
|
|
@handler UnStakeNft
|
|
post /nft/unstake (UnStakeNftReq)
|
|
|
|
@doc "质押奖励发放列表"
|
|
@handler StakeRewardList
|
|
get /nft/stake_reward returns (StakeRewardList)
|
|
}
|
|
|
|
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"` // 按钮文字
|
|
Params string `json:"params"` // 参数
|
|
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,10=invite_user,11=ambassador_task
|
|
Url string `json:"url"` // 跳转链接
|
|
Sort int `json:"sort"` // 排序
|
|
StartAt string `json:"start_at"` // 开始时间
|
|
EndAt string `json:"end_at"` // 结束时间
|
|
HasFinishCount int `json:"has_finish_count"` // 当前完成进度
|
|
TotalCount int `json:"total_count"` // 总进度
|
|
FinishState int8 `json:"finish_state"` // 0:未完成 1:待校验 2:已完成未领取 3:已领取 4:不可参与
|
|
}
|
|
|
|
type GetTaskListResp {
|
|
Tasks []Task `json:"tasks"`
|
|
}
|
|
|
|
type VerifyTaskResultReq {
|
|
ID uint `form:"id"` // 任务ID
|
|
Params string `form:"params,optional"` // 额外的参数
|
|
}
|
|
|
|
type GetTaskRewardReq {
|
|
ID uint `form:"id"` // 任务ID
|
|
RoleId int64 `form:"role_id,optional"` // 游戏角色ID
|
|
}
|
|
|
|
type VerifyTaskResultResp {
|
|
Finish bool `json:"finish"` // 是否完成
|
|
}
|
|
|
|
type GetTaskRewardResp {
|
|
Points int `json:"points"` // 积分
|
|
}
|
|
|
|
type Community {
|
|
Id uint `json:"id"` // 社区ID
|
|
Title string `json:"title"` // 社区标题
|
|
Logo string `json:"logo"` // 社区图标
|
|
Description string `json:"description"` // 社区描述
|
|
StartAt int64 `json:"start_at"` // 开始时间
|
|
EndAt int64 `json:"end_at"` // 结束时间
|
|
}
|
|
|
|
type GetCommunityListResp {
|
|
CommunityList []Community `json:"community_list"` // 社区列表
|
|
}
|
|
|
|
// StakeTaskDetail 质押任务详情
|
|
type StakeTaskDetail {
|
|
StartDate string `json:"start_date"` // 开始日期
|
|
EndDate string `json:"end_date"` // 结束日期
|
|
CountDown int `json:"count_down"` // 剩余结算时间
|
|
ProduceTokensToday float64 `json:"produce_token_today"` // 今日产出代币
|
|
GameBonus int `json:"game_bonus"` // 游戏加成比率
|
|
CanReceiveTokens float64 `json:"can_receive_tokens"` // 可领取代币数量
|
|
TotalIncomeTokens float64 `json:"total_income_tokens"` // 累计收益
|
|
}
|
|
|
|
// UserNft 用户NFT
|
|
type UserNft {
|
|
TokenId string `json:"token_id"` // nftID
|
|
Image string `json:"image"` // nft图片
|
|
HasStake bool `json:"has_stake"` // 是否已质押
|
|
StakeAt string `json:"stake_at"` // 质押时间
|
|
RoleId uint64 `json:"role_id"` // 角色id
|
|
}
|
|
|
|
type GetNftListReq {
|
|
WalletAddress string `form:"wallet_address"`
|
|
}
|
|
|
|
// UserNftList 用户NFT列表
|
|
type UserNftList {
|
|
NftList []UserNft `json:"nft_list"`
|
|
}
|
|
|
|
// StakeNftList 质押请求参数NFT列表
|
|
type StakeNftList {
|
|
RoleId uint64 `json:"role_id,optional"` // 角色id
|
|
TokenIds []string `json:"token_ids"` // nft列表
|
|
}
|
|
|
|
// UnStakeNftReq 取消质押请求参数
|
|
type UnStakeNftReq {
|
|
TokenId string `json:"token_id"` // nftID
|
|
}
|
|
|
|
type StakeReward {
|
|
Date string `json:"date"` // 日期
|
|
Reward float64 `json:"reward"` // 当日发放奖励
|
|
}
|
|
|
|
type StakeRewardList {
|
|
RewardList []StakeReward `json:"reward_list"`
|
|
}
|
|
|