634 lines
14 KiB
JSON
634 lines
14 KiB
JSON
{
|
|
"swagger": "2.0",
|
|
"info": {
|
|
"title": "",
|
|
"version": ""
|
|
},
|
|
"schemes": [
|
|
"http",
|
|
"https"
|
|
],
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"paths": {
|
|
"/gapi/task/v1/community": {
|
|
"get": {
|
|
"summary": "获取社区列表",
|
|
"operationId": "GetCommunityList",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/GetCommunityListResp"
|
|
}
|
|
}
|
|
},
|
|
"tags": [
|
|
"task"
|
|
]
|
|
}
|
|
},
|
|
"/gapi/task/v1/nft/stake": {
|
|
"post": {
|
|
"summary": "质押NFT",
|
|
"operationId": "StakeNft",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"description": " StakeNftList 质押请求参数NFT列表",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/StakeNftList"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"task"
|
|
],
|
|
"security": [
|
|
{
|
|
"apiKey": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/gapi/task/v1/nft/unstake": {
|
|
"post": {
|
|
"summary": "取消质押NFT",
|
|
"operationId": "UnStakeNft",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"description": " UnStakeNftReq 取消质押请求参数",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/UnStakeNftReq"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"task"
|
|
],
|
|
"security": [
|
|
{
|
|
"apiKey": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/gapi/task/v1/nfts": {
|
|
"get": {
|
|
"summary": "拉取玩家持有的nft列表",
|
|
"operationId": "GetNftList",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/UserNftList"
|
|
}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "wallet_address",
|
|
"in": "query",
|
|
"required": true,
|
|
"type": "string"
|
|
}
|
|
],
|
|
"tags": [
|
|
"task"
|
|
],
|
|
"consumes": [
|
|
"multipart/form-data"
|
|
],
|
|
"security": [
|
|
{
|
|
"apiKey": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/gapi/task/v1/reward/{id}": {
|
|
"get": {
|
|
"summary": "领取任务奖励",
|
|
"operationId": "GetTaskReward",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/GetTaskRewardResp"
|
|
}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"type": "string"
|
|
}
|
|
],
|
|
"tags": [
|
|
"task"
|
|
],
|
|
"security": [
|
|
{
|
|
"apiKey": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/gapi/task/v1/task": {
|
|
"get": {
|
|
"summary": "校验任务结果",
|
|
"operationId": "VerifyTaskResult",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/VerifyTaskResultResp"
|
|
}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"description": " 任务ID",
|
|
"in": "query",
|
|
"required": true,
|
|
"type": "integer",
|
|
"format": "uint32"
|
|
},
|
|
{
|
|
"name": "params",
|
|
"description": " 额外的参数",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
}
|
|
],
|
|
"tags": [
|
|
"task"
|
|
],
|
|
"consumes": [
|
|
"multipart/form-data"
|
|
],
|
|
"security": [
|
|
{
|
|
"apiKey": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/gapi/task/v1/task/stake": {
|
|
"get": {
|
|
"summary": "质押任务详情",
|
|
"operationId": "GetStakeTaskDetail",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/StakeTaskDetail"
|
|
}
|
|
}
|
|
},
|
|
"tags": [
|
|
"task"
|
|
],
|
|
"security": [
|
|
{
|
|
"apiKey": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/gapi/task/v1/tasks": {
|
|
"get": {
|
|
"summary": "获取任务列表",
|
|
"operationId": "GetTaskList",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/GetTaskListResp"
|
|
}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "community_id",
|
|
"description": " 所属社区ID",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "integer",
|
|
"format": "uint32"
|
|
}
|
|
],
|
|
"tags": [
|
|
"task"
|
|
],
|
|
"consumes": [
|
|
"multipart/form-data"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"definitions": {
|
|
"Community": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "uint32",
|
|
"description": " 社区ID"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"description": " 社区标题"
|
|
},
|
|
"logo": {
|
|
"type": "string",
|
|
"description": " 社区图标"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"description": " 社区描述"
|
|
},
|
|
"start_at": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"description": " 开始时间"
|
|
},
|
|
"end_at": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"description": " 结束时间"
|
|
}
|
|
},
|
|
"title": "Community",
|
|
"required": [
|
|
"id",
|
|
"title",
|
|
"logo",
|
|
"description",
|
|
"start_at",
|
|
"end_at"
|
|
]
|
|
},
|
|
"GetCommunityListResp": {
|
|
"type": "object",
|
|
"properties": {
|
|
"community_list": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/Community"
|
|
},
|
|
"description": " 社区列表"
|
|
}
|
|
},
|
|
"title": "GetCommunityListResp",
|
|
"required": [
|
|
"community_list"
|
|
]
|
|
},
|
|
"GetNftListReq": {
|
|
"type": "object",
|
|
"properties": {
|
|
"wallet_address": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"title": "GetNftListReq",
|
|
"required": [
|
|
"wallet_address"
|
|
]
|
|
},
|
|
"GetTaskListReq": {
|
|
"type": "object",
|
|
"properties": {
|
|
"community_id": {
|
|
"type": "integer",
|
|
"format": "uint32",
|
|
"description": " 所属社区ID"
|
|
}
|
|
},
|
|
"title": "GetTaskListReq"
|
|
},
|
|
"GetTaskListResp": {
|
|
"type": "object",
|
|
"properties": {
|
|
"tasks": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/Task"
|
|
}
|
|
}
|
|
},
|
|
"title": "GetTaskListResp",
|
|
"required": [
|
|
"tasks"
|
|
]
|
|
},
|
|
"GetTaskRewardResp": {
|
|
"type": "object",
|
|
"properties": {
|
|
"points": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"description": " 积分"
|
|
}
|
|
},
|
|
"title": "GetTaskRewardResp",
|
|
"required": [
|
|
"points"
|
|
]
|
|
},
|
|
"StakeNftList": {
|
|
"type": "object",
|
|
"properties": {
|
|
"role_id": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"description": " 角色id"
|
|
},
|
|
"token_ids": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": " nft列表"
|
|
}
|
|
},
|
|
"title": "StakeNftList",
|
|
"required": [
|
|
"role_id",
|
|
"token_ids"
|
|
]
|
|
},
|
|
"StakeTaskDetail": {
|
|
"type": "object",
|
|
"properties": {
|
|
"start_date": {
|
|
"type": "string",
|
|
"description": " 开始日期"
|
|
},
|
|
"end_date": {
|
|
"type": "string",
|
|
"description": " 结束日期"
|
|
},
|
|
"count_down": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"description": " 剩余结算时间"
|
|
},
|
|
"produce_token_today": {
|
|
"type": "number",
|
|
"format": "double",
|
|
"description": " 今日产出代币"
|
|
},
|
|
"game_bonus": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"description": " 游戏加成比率"
|
|
},
|
|
"can_receive_tokens": {
|
|
"type": "number",
|
|
"format": "double",
|
|
"description": " 可领取代币数量"
|
|
}
|
|
},
|
|
"title": "StakeTaskDetail",
|
|
"required": [
|
|
"start_date",
|
|
"end_date",
|
|
"count_down",
|
|
"produce_token_today",
|
|
"game_bonus",
|
|
"can_receive_tokens"
|
|
]
|
|
},
|
|
"Task": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "uint32",
|
|
"description": " 任务ID"
|
|
},
|
|
"community_id": {
|
|
"type": "integer",
|
|
"format": "uint32",
|
|
"description": " 所属社区ID"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"description": " 任务标题"
|
|
},
|
|
"sub_title": {
|
|
"type": "string",
|
|
"description": " 副标题"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"description": " 任务描述"
|
|
},
|
|
"points": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"description": " 任务积分"
|
|
},
|
|
"button_text": {
|
|
"type": "string",
|
|
"description": " 按钮文字"
|
|
},
|
|
"params": {
|
|
"type": "string",
|
|
"description": " 参数"
|
|
},
|
|
"type": {
|
|
"type": "integer",
|
|
"format": "int8",
|
|
"description": " 任务类型: 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"
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"description": " 跳转链接"
|
|
},
|
|
"sort": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"description": " 排序"
|
|
},
|
|
"start_at": {
|
|
"type": "string",
|
|
"description": " 开始时间"
|
|
},
|
|
"end_at": {
|
|
"type": "string",
|
|
"description": " 结束时间"
|
|
},
|
|
"has_finish_count": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"description": " 当前完成进度"
|
|
},
|
|
"total_count": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"description": " 总进度"
|
|
},
|
|
"finish_state": {
|
|
"type": "integer",
|
|
"format": "int8",
|
|
"description": " 0:未完成 1:待校验 2:已完成未领取 3:已领取"
|
|
}
|
|
},
|
|
"title": "Task",
|
|
"required": [
|
|
"id",
|
|
"community_id",
|
|
"title",
|
|
"sub_title",
|
|
"description",
|
|
"points",
|
|
"button_text",
|
|
"params",
|
|
"type",
|
|
"url",
|
|
"sort",
|
|
"start_at",
|
|
"end_at",
|
|
"has_finish_count",
|
|
"total_count",
|
|
"finish_state"
|
|
]
|
|
},
|
|
"TaskIdPath": {
|
|
"type": "object",
|
|
"title": "TaskIdPath"
|
|
},
|
|
"UnStakeNftReq": {
|
|
"type": "object",
|
|
"properties": {
|
|
"token_id": {
|
|
"type": "string",
|
|
"description": " nftID"
|
|
}
|
|
},
|
|
"title": "UnStakeNftReq",
|
|
"required": [
|
|
"token_id"
|
|
]
|
|
},
|
|
"UserNft": {
|
|
"type": "object",
|
|
"properties": {
|
|
"token_id": {
|
|
"type": "string",
|
|
"description": " nftID"
|
|
},
|
|
"image": {
|
|
"type": "string",
|
|
"description": " nft图片"
|
|
},
|
|
"has_stake": {
|
|
"type": "boolean",
|
|
"format": "boolean",
|
|
"description": " 是否已质押"
|
|
},
|
|
"stake_at": {
|
|
"type": "string",
|
|
"description": " 质押时间"
|
|
},
|
|
"role_id": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"description": " 角色id"
|
|
}
|
|
},
|
|
"title": "UserNft",
|
|
"required": [
|
|
"token_id",
|
|
"image",
|
|
"has_stake",
|
|
"stake_at",
|
|
"role_id"
|
|
]
|
|
},
|
|
"UserNftList": {
|
|
"type": "object",
|
|
"properties": {
|
|
"nft_list": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/UserNft"
|
|
}
|
|
}
|
|
},
|
|
"title": "UserNftList",
|
|
"required": [
|
|
"nft_list"
|
|
]
|
|
},
|
|
"VerifyTaskResultReq": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"format": "uint32",
|
|
"description": " 任务ID"
|
|
},
|
|
"params": {
|
|
"type": "string",
|
|
"description": " 额外的参数"
|
|
}
|
|
},
|
|
"title": "VerifyTaskResultReq",
|
|
"required": [
|
|
"id"
|
|
]
|
|
},
|
|
"VerifyTaskResultResp": {
|
|
"type": "object",
|
|
"properties": {
|
|
"finish": {
|
|
"type": "boolean",
|
|
"format": "boolean",
|
|
"description": " 是否完成"
|
|
}
|
|
},
|
|
"title": "VerifyTaskResultResp",
|
|
"required": [
|
|
"finish"
|
|
]
|
|
}
|
|
},
|
|
"securityDefinitions": {
|
|
"apiKey": {
|
|
"type": "apiKey",
|
|
"description": "Enter JWT Bearer token **_only_**",
|
|
"name": "Authorization",
|
|
"in": "header"
|
|
}
|
|
}
|
|
}
|