Files
novatask/doc/swagger/nova-task.json
2024-12-27 18:06:13 +08:00

594 lines
13 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"
}
}
},
"tags": [
"task"
],
"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"
]
},
"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": {
"token_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": " nft列表"
}
},
"title": "StakeNftList",
"required": [
"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"
},
"has_stake": {
"type": "boolean",
"format": "boolean",
"description": " 是否已质押"
},
"stake_at": {
"type": "string",
"description": " 质押时间"
}
},
"title": "UserNft",
"required": [
"token_id",
"has_stake",
"stake_at"
]
},
"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"
}
}
}