feat: user & article: dev complete

This commit is contained in:
fallen-angle
2022-02-27 16:36:33 +08:00
parent 4f3b16ab9d
commit 80ca1cd46e
33 changed files with 2373 additions and 185 deletions

View File

@@ -16,6 +16,228 @@ const docTemplate_swagger = `{
"host": "{{.Host}}",
"basePath": "{{.BasePath}}",
"paths": {
"/article": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Article"
],
"summary": "save article",
"parameters": [
{
"description": "article",
"name": "Article",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.BackArticle"
}
},
{
"type": "string",
"description": "token",
"name": "Token",
"in": "header",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"allOf": [
{
"$ref": "#/definitions/utils.GinResponse"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/models.BackArticle"
}
}
}
]
}
}
}
}
},
"/article/list": {
"get": {
"description": "Admin can get not published article",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Article"
],
"summary": "get all articles",
"parameters": [
{
"type": "string",
"description": "token",
"name": "Token",
"in": "header"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"allOf": [
{
"$ref": "#/definitions/utils.GinResponse"
},
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/definitions/models.BackArticle"
}
}
}
}
]
}
}
}
}
},
"/article/{id}": {
"get": {
"description": "Admin can get not published article",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Article"
],
"summary": "get all articles",
"parameters": [
{
"type": "string",
"description": "token",
"name": "Token",
"in": "header"
},
{
"type": "string",
"description": "id",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"allOf": [
{
"$ref": "#/definitions/utils.GinResponse"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/models.BackArticle"
}
}
}
]
}
}
}
},
"delete": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Article"
],
"summary": "delete an article",
"parameters": [
{
"type": "string",
"description": "token",
"name": "Token",
"in": "header",
"required": true
},
{
"type": "string",
"description": "id",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/utils.GinResponse"
}
}
}
}
},
"/article/{id}/publish": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Article"
],
"summary": "get all articles",
"parameters": [
{
"type": "string",
"description": "token",
"name": "Token",
"in": "header",
"required": true
},
{
"type": "string",
"description": "id",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/utils.GinResponse"
}
}
}
}
},
"/statistics/china": {
"get": {
"produces": [
@@ -31,7 +253,7 @@ const docTemplate_swagger = `{
"schema": {
"allOf": [
{
"$ref": "#/definitions/models.GinResponse"
"$ref": "#/definitions/utils.GinResponse"
},
{
"type": "object",
@@ -76,7 +298,7 @@ const docTemplate_swagger = `{
"schema": {
"allOf": [
{
"$ref": "#/definitions/models.GinResponse"
"$ref": "#/definitions/utils.GinResponse"
},
{
"type": "object",
@@ -110,7 +332,7 @@ const docTemplate_swagger = `{
"schema": {
"allOf": [
{
"$ref": "#/definitions/models.GinResponse"
"$ref": "#/definitions/utils.GinResponse"
},
{
"type": "object",
@@ -144,7 +366,7 @@ const docTemplate_swagger = `{
"schema": {
"allOf": [
{
"$ref": "#/definitions/models.GinResponse"
"$ref": "#/definitions/utils.GinResponse"
},
{
"type": "object",
@@ -192,7 +414,7 @@ const docTemplate_swagger = `{
"schema": {
"allOf": [
{
"$ref": "#/definitions/models.GinResponse"
"$ref": "#/definitions/utils.GinResponse"
},
{
"type": "object",
@@ -210,6 +432,236 @@ const docTemplate_swagger = `{
}
}
}
},
"/user/approve": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"User"
],
"summary": "admin approve account, user can use account after approved",
"parameters": [
{
"type": "string",
"description": "token",
"name": "Token",
"in": "header",
"required": true
},
{
"description": "json",
"name": "json",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.UserApprove"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/utils.GinResponse"
}
}
}
}
},
"/user/chpwd": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"User"
],
"summary": "change user's password",
"parameters": [
{
"description": "json",
"name": "json",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.UserChangePwd"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/utils.GinResponse"
}
}
}
}
},
"/user/code/{email}/{code}": {
"get": {
"produces": [
"application/json"
],
"tags": [
"User"
],
"summary": "send verify code",
"parameters": [
{
"type": "string",
"description": "email",
"name": "email",
"in": "path",
"required": true
},
{
"type": "string",
"description": "code",
"name": "code",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/utils.GinResponse"
}
}
}
}
},
"/user/login": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"User"
],
"summary": "user login",
"parameters": [
{
"description": "json",
"name": "json",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.UserLogin"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/utils.GinResponse"
}
}
}
}
},
"/user/register": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"User"
],
"summary": "user register account",
"parameters": [
{
"description": "json",
"name": "json",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.UserRegister"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/utils.GinResponse"
}
}
}
}
},
"/user/registers": {
"get": {
"produces": [
"application/json"
],
"tags": [
"User"
],
"summary": "list register infos, which is to be approved",
"parameters": [
{
"type": "string",
"description": "token",
"name": "Token",
"in": "header",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/utils.GinResponse"
}
}
}
}
},
"/user/{code}": {
"get": {
"produces": [
"application/json"
],
"tags": [
"User"
],
"summary": "send verify code",
"parameters": [
{
"type": "string",
"description": "email",
"name": "email",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/utils.GinResponse"
}
}
}
}
}
},
"definitions": {
@@ -273,6 +725,55 @@ const docTemplate_swagger = `{
}
}
},
"models.BackArticle": {
"type": "object",
"properties": {
"content": {
"description": "文章内容(如有需要可迁移至对象存储)",
"type": "string"
},
"cover": {
"description": "文章封面",
"type": "string"
},
"createTime": {
"description": "文章新建时间",
"type": "string"
},
"createUser": {
"description": "文章创建者id",
"type": "string"
},
"isDelete": {
"description": "删除标志",
"type": "integer"
},
"isPublish": {
"description": "发布状态(0:未发布, 1: 发布)",
"type": "integer"
},
"modifyTime": {
"description": "文章最后更新时间",
"type": "string"
},
"modifyUser": {
"description": "文章最后更新者id",
"type": "string"
},
"resume": {
"description": "文章简述",
"type": "string"
},
"tags": {
"description": "文章Tag",
"type": "string"
},
"title": {
"description": "文章标题",
"type": "string"
}
}
},
"models.ChinaAdd": {
"type": "object",
"properties": {
@@ -369,7 +870,63 @@ const docTemplate_swagger = `{
}
}
},
"models.GinResponse": {
"models.UserApprove": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"pass": {
"type": "boolean"
}
}
},
"models.UserChangePwd": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"email": {
"type": "string"
},
"newPassword": {
"type": "string"
}
}
},
"models.UserLogin": {
"type": "object",
"properties": {
"account": {
"type": "string"
},
"password": {
"type": "string"
}
}
},
"models.UserRegister": {
"type": "object",
"properties": {
"aptitude": {
"type": "string"
},
"email": {
"type": "string"
},
"password": {
"type": "string"
},
"phone": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"utils.GinResponse": {
"type": "object",
"properties": {
"code": {