mirror of https://gitee.com/answerdev/answer.git
feat: site info add term of service and private policy
This commit is contained in:
parent
f6fa850aa0
commit
d02f64b7a9
465
docs/docs.go
465
docs/docs.go
|
@ -503,6 +503,77 @@ const docTemplate = `{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"/answer/admin/api/siteinfo/branding": {
|
||||||
|
"get": {
|
||||||
|
"security": [
|
||||||
|
{
|
||||||
|
"ApiKeyAuth": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "get site interface",
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"admin"
|
||||||
|
],
|
||||||
|
"summary": "get site interface",
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/definitions/handler.RespBody"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"data": {
|
||||||
|
"$ref": "#/definitions/schema.SiteBrandingResp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"put": {
|
||||||
|
"security": [
|
||||||
|
{
|
||||||
|
"ApiKeyAuth": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "update site info branding",
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"admin"
|
||||||
|
],
|
||||||
|
"summary": "update site info branding",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"description": "branding info",
|
||||||
|
"name": "data",
|
||||||
|
"in": "body",
|
||||||
|
"required": true,
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/schema.SiteBrandingReq"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/handler.RespBody"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"/answer/admin/api/siteinfo/general": {
|
"/answer/admin/api/siteinfo/general": {
|
||||||
"get": {
|
"get": {
|
||||||
"security": [
|
"security": [
|
||||||
|
@ -645,6 +716,148 @@ const docTemplate = `{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"/answer/admin/api/siteinfo/legal": {
|
||||||
|
"get": {
|
||||||
|
"security": [
|
||||||
|
{
|
||||||
|
"ApiKeyAuth": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Set the legal information for the site",
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"admin"
|
||||||
|
],
|
||||||
|
"summary": "Set the legal information for the site",
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/definitions/handler.RespBody"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"data": {
|
||||||
|
"$ref": "#/definitions/schema.SiteLegalResp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"put": {
|
||||||
|
"security": [
|
||||||
|
{
|
||||||
|
"ApiKeyAuth": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "update site legal info",
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"admin"
|
||||||
|
],
|
||||||
|
"summary": "update site legal info",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"description": "write info",
|
||||||
|
"name": "data",
|
||||||
|
"in": "body",
|
||||||
|
"required": true,
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/schema.SiteLegalReq"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/handler.RespBody"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"/answer/admin/api/siteinfo/write": {
|
||||||
|
"get": {
|
||||||
|
"security": [
|
||||||
|
{
|
||||||
|
"ApiKeyAuth": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "get site interface",
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"admin"
|
||||||
|
],
|
||||||
|
"summary": "get site interface",
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/definitions/handler.RespBody"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"data": {
|
||||||
|
"$ref": "#/definitions/schema.SiteWriteResp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"put": {
|
||||||
|
"security": [
|
||||||
|
{
|
||||||
|
"ApiKeyAuth": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "update site write info",
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"admin"
|
||||||
|
],
|
||||||
|
"summary": "update site write info",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"description": "write info",
|
||||||
|
"name": "data",
|
||||||
|
"in": "body",
|
||||||
|
"required": true,
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/schema.SiteWriteReq"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/handler.RespBody"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"/answer/admin/api/theme/options": {
|
"/answer/admin/api/theme/options": {
|
||||||
"get": {
|
"get": {
|
||||||
"security": [
|
"security": [
|
||||||
|
@ -1323,6 +1536,64 @@ const docTemplate = `{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"/answer/api/v1/file": {
|
||||||
|
"post": {
|
||||||
|
"security": [
|
||||||
|
{
|
||||||
|
"ApiKeyAuth": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "upload file",
|
||||||
|
"consumes": [
|
||||||
|
"multipart/form-data"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"Upload"
|
||||||
|
],
|
||||||
|
"summary": "upload file",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"enum": [
|
||||||
|
"post",
|
||||||
|
"avatar",
|
||||||
|
"branding"
|
||||||
|
],
|
||||||
|
"type": "string",
|
||||||
|
"description": "identify the source of the file upload",
|
||||||
|
"name": "source",
|
||||||
|
"in": "formData",
|
||||||
|
"required": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"description": "file",
|
||||||
|
"name": "file",
|
||||||
|
"in": "formData",
|
||||||
|
"required": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/definitions/handler.RespBody"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"data": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"/answer/api/v1/follow": {
|
"/answer/api/v1/follow": {
|
||||||
"post": {
|
"post": {
|
||||||
"security": [
|
"security": [
|
||||||
|
@ -3106,52 +3377,6 @@ const docTemplate = `{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"/answer/api/v1/user/avatar/upload": {
|
|
||||||
"post": {
|
|
||||||
"security": [
|
|
||||||
{
|
|
||||||
"ApiKeyAuth": []
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "UserUpdateInfo",
|
|
||||||
"consumes": [
|
|
||||||
"multipart/form-data"
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"User"
|
|
||||||
],
|
|
||||||
"summary": "UserUpdateInfo",
|
|
||||||
"parameters": [
|
|
||||||
{
|
|
||||||
"type": "file",
|
|
||||||
"description": "file",
|
|
||||||
"name": "file",
|
|
||||||
"in": "formData",
|
|
||||||
"required": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"responses": {
|
|
||||||
"200": {
|
|
||||||
"description": "OK",
|
|
||||||
"schema": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "#/definitions/handler.RespBody"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"data": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"/answer/api/v1/user/email": {
|
"/answer/api/v1/user/email": {
|
||||||
"put": {
|
"put": {
|
||||||
"security": [
|
"security": [
|
||||||
|
@ -3671,52 +3896,6 @@ const docTemplate = `{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"/answer/api/v1/user/post/file": {
|
|
||||||
"post": {
|
|
||||||
"security": [
|
|
||||||
{
|
|
||||||
"ApiKeyAuth": []
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "upload user post file",
|
|
||||||
"consumes": [
|
|
||||||
"multipart/form-data"
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"User"
|
|
||||||
],
|
|
||||||
"summary": "upload user post file",
|
|
||||||
"parameters": [
|
|
||||||
{
|
|
||||||
"type": "file",
|
|
||||||
"description": "file",
|
|
||||||
"name": "file",
|
|
||||||
"in": "formData",
|
|
||||||
"required": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"responses": {
|
|
||||||
"200": {
|
|
||||||
"description": "OK",
|
|
||||||
"schema": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "#/definitions/handler.RespBody"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"data": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"/answer/api/v1/user/register/email": {
|
"/answer/api/v1/user/register/email": {
|
||||||
"post": {
|
"post": {
|
||||||
"description": "UserRegisterByEmail",
|
"description": "UserRegisterByEmail",
|
||||||
|
@ -5571,6 +5750,56 @@ const docTemplate = `{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"schema.SiteBrandingReq": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"logo",
|
||||||
|
"square_icon"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"favicon": {
|
||||||
|
"type": "string",
|
||||||
|
"maxLength": 512
|
||||||
|
},
|
||||||
|
"logo": {
|
||||||
|
"type": "string",
|
||||||
|
"maxLength": 512
|
||||||
|
},
|
||||||
|
"mobile_logo": {
|
||||||
|
"type": "string",
|
||||||
|
"maxLength": 512
|
||||||
|
},
|
||||||
|
"square_icon": {
|
||||||
|
"type": "string",
|
||||||
|
"maxLength": 512
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"schema.SiteBrandingResp": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"logo",
|
||||||
|
"square_icon"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"favicon": {
|
||||||
|
"type": "string",
|
||||||
|
"maxLength": 512
|
||||||
|
},
|
||||||
|
"logo": {
|
||||||
|
"type": "string",
|
||||||
|
"maxLength": 512
|
||||||
|
},
|
||||||
|
"mobile_logo": {
|
||||||
|
"type": "string",
|
||||||
|
"maxLength": 512
|
||||||
|
},
|
||||||
|
"square_icon": {
|
||||||
|
"type": "string",
|
||||||
|
"maxLength": 512
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"schema.SiteGeneralReq": {
|
"schema.SiteGeneralReq": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"required": [
|
"required": [
|
||||||
|
@ -5647,10 +5876,6 @@ const docTemplate = `{
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"maxLength": 128
|
"maxLength": 128
|
||||||
},
|
},
|
||||||
"logo": {
|
|
||||||
"type": "string",
|
|
||||||
"maxLength": 256
|
|
||||||
},
|
|
||||||
"theme": {
|
"theme": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"maxLength": 128
|
"maxLength": 128
|
||||||
|
@ -5673,10 +5898,6 @@ const docTemplate = `{
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"maxLength": 128
|
"maxLength": 128
|
||||||
},
|
},
|
||||||
"logo": {
|
|
||||||
"type": "string",
|
|
||||||
"maxLength": 256
|
|
||||||
},
|
|
||||||
"theme": {
|
"theme": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"maxLength": 128
|
"maxLength": 128
|
||||||
|
@ -5687,6 +5908,50 @@ const docTemplate = `{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"schema.SiteLegalReq": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"privacy_policy": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"terms_of_service": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"schema.SiteLegalResp": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"privacy_policy": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"terms_of_service": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"schema.SiteWriteReq": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"required_tag"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"required_tag": {
|
||||||
|
"type": "boolean"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"schema.SiteWriteResp": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"required_tag"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"required_tag": {
|
||||||
|
"type": "boolean"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"schema.TagItem": {
|
"schema.TagItem": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
|
|
@ -491,6 +491,77 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"/answer/admin/api/siteinfo/branding": {
|
||||||
|
"get": {
|
||||||
|
"security": [
|
||||||
|
{
|
||||||
|
"ApiKeyAuth": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "get site interface",
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"admin"
|
||||||
|
],
|
||||||
|
"summary": "get site interface",
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/definitions/handler.RespBody"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"data": {
|
||||||
|
"$ref": "#/definitions/schema.SiteBrandingResp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"put": {
|
||||||
|
"security": [
|
||||||
|
{
|
||||||
|
"ApiKeyAuth": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "update site info branding",
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"admin"
|
||||||
|
],
|
||||||
|
"summary": "update site info branding",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"description": "branding info",
|
||||||
|
"name": "data",
|
||||||
|
"in": "body",
|
||||||
|
"required": true,
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/schema.SiteBrandingReq"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/handler.RespBody"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"/answer/admin/api/siteinfo/general": {
|
"/answer/admin/api/siteinfo/general": {
|
||||||
"get": {
|
"get": {
|
||||||
"security": [
|
"security": [
|
||||||
|
@ -633,6 +704,148 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"/answer/admin/api/siteinfo/legal": {
|
||||||
|
"get": {
|
||||||
|
"security": [
|
||||||
|
{
|
||||||
|
"ApiKeyAuth": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Set the legal information for the site",
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"admin"
|
||||||
|
],
|
||||||
|
"summary": "Set the legal information for the site",
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/definitions/handler.RespBody"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"data": {
|
||||||
|
"$ref": "#/definitions/schema.SiteLegalResp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"put": {
|
||||||
|
"security": [
|
||||||
|
{
|
||||||
|
"ApiKeyAuth": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "update site legal info",
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"admin"
|
||||||
|
],
|
||||||
|
"summary": "update site legal info",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"description": "write info",
|
||||||
|
"name": "data",
|
||||||
|
"in": "body",
|
||||||
|
"required": true,
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/schema.SiteLegalReq"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/handler.RespBody"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"/answer/admin/api/siteinfo/write": {
|
||||||
|
"get": {
|
||||||
|
"security": [
|
||||||
|
{
|
||||||
|
"ApiKeyAuth": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "get site interface",
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"admin"
|
||||||
|
],
|
||||||
|
"summary": "get site interface",
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/definitions/handler.RespBody"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"data": {
|
||||||
|
"$ref": "#/definitions/schema.SiteWriteResp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"put": {
|
||||||
|
"security": [
|
||||||
|
{
|
||||||
|
"ApiKeyAuth": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "update site write info",
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"admin"
|
||||||
|
],
|
||||||
|
"summary": "update site write info",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"description": "write info",
|
||||||
|
"name": "data",
|
||||||
|
"in": "body",
|
||||||
|
"required": true,
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/schema.SiteWriteReq"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/handler.RespBody"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"/answer/admin/api/theme/options": {
|
"/answer/admin/api/theme/options": {
|
||||||
"get": {
|
"get": {
|
||||||
"security": [
|
"security": [
|
||||||
|
@ -1311,6 +1524,64 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"/answer/api/v1/file": {
|
||||||
|
"post": {
|
||||||
|
"security": [
|
||||||
|
{
|
||||||
|
"ApiKeyAuth": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "upload file",
|
||||||
|
"consumes": [
|
||||||
|
"multipart/form-data"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"Upload"
|
||||||
|
],
|
||||||
|
"summary": "upload file",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"enum": [
|
||||||
|
"post",
|
||||||
|
"avatar",
|
||||||
|
"branding"
|
||||||
|
],
|
||||||
|
"type": "string",
|
||||||
|
"description": "identify the source of the file upload",
|
||||||
|
"name": "source",
|
||||||
|
"in": "formData",
|
||||||
|
"required": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"description": "file",
|
||||||
|
"name": "file",
|
||||||
|
"in": "formData",
|
||||||
|
"required": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"allOf": [
|
||||||
|
{
|
||||||
|
"$ref": "#/definitions/handler.RespBody"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"data": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"/answer/api/v1/follow": {
|
"/answer/api/v1/follow": {
|
||||||
"post": {
|
"post": {
|
||||||
"security": [
|
"security": [
|
||||||
|
@ -3094,52 +3365,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"/answer/api/v1/user/avatar/upload": {
|
|
||||||
"post": {
|
|
||||||
"security": [
|
|
||||||
{
|
|
||||||
"ApiKeyAuth": []
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "UserUpdateInfo",
|
|
||||||
"consumes": [
|
|
||||||
"multipart/form-data"
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"User"
|
|
||||||
],
|
|
||||||
"summary": "UserUpdateInfo",
|
|
||||||
"parameters": [
|
|
||||||
{
|
|
||||||
"type": "file",
|
|
||||||
"description": "file",
|
|
||||||
"name": "file",
|
|
||||||
"in": "formData",
|
|
||||||
"required": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"responses": {
|
|
||||||
"200": {
|
|
||||||
"description": "OK",
|
|
||||||
"schema": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "#/definitions/handler.RespBody"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"data": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"/answer/api/v1/user/email": {
|
"/answer/api/v1/user/email": {
|
||||||
"put": {
|
"put": {
|
||||||
"security": [
|
"security": [
|
||||||
|
@ -3659,52 +3884,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"/answer/api/v1/user/post/file": {
|
|
||||||
"post": {
|
|
||||||
"security": [
|
|
||||||
{
|
|
||||||
"ApiKeyAuth": []
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "upload user post file",
|
|
||||||
"consumes": [
|
|
||||||
"multipart/form-data"
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"User"
|
|
||||||
],
|
|
||||||
"summary": "upload user post file",
|
|
||||||
"parameters": [
|
|
||||||
{
|
|
||||||
"type": "file",
|
|
||||||
"description": "file",
|
|
||||||
"name": "file",
|
|
||||||
"in": "formData",
|
|
||||||
"required": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"responses": {
|
|
||||||
"200": {
|
|
||||||
"description": "OK",
|
|
||||||
"schema": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "#/definitions/handler.RespBody"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"data": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"/answer/api/v1/user/register/email": {
|
"/answer/api/v1/user/register/email": {
|
||||||
"post": {
|
"post": {
|
||||||
"description": "UserRegisterByEmail",
|
"description": "UserRegisterByEmail",
|
||||||
|
@ -5559,6 +5738,56 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"schema.SiteBrandingReq": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"logo",
|
||||||
|
"square_icon"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"favicon": {
|
||||||
|
"type": "string",
|
||||||
|
"maxLength": 512
|
||||||
|
},
|
||||||
|
"logo": {
|
||||||
|
"type": "string",
|
||||||
|
"maxLength": 512
|
||||||
|
},
|
||||||
|
"mobile_logo": {
|
||||||
|
"type": "string",
|
||||||
|
"maxLength": 512
|
||||||
|
},
|
||||||
|
"square_icon": {
|
||||||
|
"type": "string",
|
||||||
|
"maxLength": 512
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"schema.SiteBrandingResp": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"logo",
|
||||||
|
"square_icon"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"favicon": {
|
||||||
|
"type": "string",
|
||||||
|
"maxLength": 512
|
||||||
|
},
|
||||||
|
"logo": {
|
||||||
|
"type": "string",
|
||||||
|
"maxLength": 512
|
||||||
|
},
|
||||||
|
"mobile_logo": {
|
||||||
|
"type": "string",
|
||||||
|
"maxLength": 512
|
||||||
|
},
|
||||||
|
"square_icon": {
|
||||||
|
"type": "string",
|
||||||
|
"maxLength": 512
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"schema.SiteGeneralReq": {
|
"schema.SiteGeneralReq": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"required": [
|
"required": [
|
||||||
|
@ -5635,10 +5864,6 @@
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"maxLength": 128
|
"maxLength": 128
|
||||||
},
|
},
|
||||||
"logo": {
|
|
||||||
"type": "string",
|
|
||||||
"maxLength": 256
|
|
||||||
},
|
|
||||||
"theme": {
|
"theme": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"maxLength": 128
|
"maxLength": 128
|
||||||
|
@ -5661,10 +5886,6 @@
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"maxLength": 128
|
"maxLength": 128
|
||||||
},
|
},
|
||||||
"logo": {
|
|
||||||
"type": "string",
|
|
||||||
"maxLength": 256
|
|
||||||
},
|
|
||||||
"theme": {
|
"theme": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"maxLength": 128
|
"maxLength": 128
|
||||||
|
@ -5675,6 +5896,50 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"schema.SiteLegalReq": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"privacy_policy": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"terms_of_service": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"schema.SiteLegalResp": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"privacy_policy": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"terms_of_service": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"schema.SiteWriteReq": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"required_tag"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"required_tag": {
|
||||||
|
"type": "boolean"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"schema.SiteWriteResp": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"required_tag"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"required_tag": {
|
||||||
|
"type": "boolean"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"schema.TagItem": {
|
"schema.TagItem": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
|
|
@ -1050,6 +1050,42 @@ definitions:
|
||||||
description: object_type
|
description: object_type
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
|
schema.SiteBrandingReq:
|
||||||
|
properties:
|
||||||
|
favicon:
|
||||||
|
maxLength: 512
|
||||||
|
type: string
|
||||||
|
logo:
|
||||||
|
maxLength: 512
|
||||||
|
type: string
|
||||||
|
mobile_logo:
|
||||||
|
maxLength: 512
|
||||||
|
type: string
|
||||||
|
square_icon:
|
||||||
|
maxLength: 512
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- logo
|
||||||
|
- square_icon
|
||||||
|
type: object
|
||||||
|
schema.SiteBrandingResp:
|
||||||
|
properties:
|
||||||
|
favicon:
|
||||||
|
maxLength: 512
|
||||||
|
type: string
|
||||||
|
logo:
|
||||||
|
maxLength: 512
|
||||||
|
type: string
|
||||||
|
mobile_logo:
|
||||||
|
maxLength: 512
|
||||||
|
type: string
|
||||||
|
square_icon:
|
||||||
|
maxLength: 512
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- logo
|
||||||
|
- square_icon
|
||||||
|
type: object
|
||||||
schema.SiteGeneralReq:
|
schema.SiteGeneralReq:
|
||||||
properties:
|
properties:
|
||||||
contact_email:
|
contact_email:
|
||||||
|
@ -1103,9 +1139,6 @@ definitions:
|
||||||
language:
|
language:
|
||||||
maxLength: 128
|
maxLength: 128
|
||||||
type: string
|
type: string
|
||||||
logo:
|
|
||||||
maxLength: 256
|
|
||||||
type: string
|
|
||||||
theme:
|
theme:
|
||||||
maxLength: 128
|
maxLength: 128
|
||||||
type: string
|
type: string
|
||||||
|
@ -1122,9 +1155,6 @@ definitions:
|
||||||
language:
|
language:
|
||||||
maxLength: 128
|
maxLength: 128
|
||||||
type: string
|
type: string
|
||||||
logo:
|
|
||||||
maxLength: 256
|
|
||||||
type: string
|
|
||||||
theme:
|
theme:
|
||||||
maxLength: 128
|
maxLength: 128
|
||||||
type: string
|
type: string
|
||||||
|
@ -1136,6 +1166,34 @@ definitions:
|
||||||
- theme
|
- theme
|
||||||
- time_zone
|
- time_zone
|
||||||
type: object
|
type: object
|
||||||
|
schema.SiteLegalReq:
|
||||||
|
properties:
|
||||||
|
privacy_policy:
|
||||||
|
type: string
|
||||||
|
terms_of_service:
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
schema.SiteLegalResp:
|
||||||
|
properties:
|
||||||
|
privacy_policy:
|
||||||
|
type: string
|
||||||
|
terms_of_service:
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
schema.SiteWriteReq:
|
||||||
|
properties:
|
||||||
|
required_tag:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- required_tag
|
||||||
|
type: object
|
||||||
|
schema.SiteWriteResp:
|
||||||
|
properties:
|
||||||
|
required_tag:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- required_tag
|
||||||
|
type: object
|
||||||
schema.TagItem:
|
schema.TagItem:
|
||||||
properties:
|
properties:
|
||||||
display_name:
|
display_name:
|
||||||
|
@ -1784,6 +1842,47 @@ paths:
|
||||||
summary: update smtp config
|
summary: update smtp config
|
||||||
tags:
|
tags:
|
||||||
- admin
|
- admin
|
||||||
|
/answer/admin/api/siteinfo/branding:
|
||||||
|
get:
|
||||||
|
description: get site interface
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- $ref: '#/definitions/handler.RespBody'
|
||||||
|
- properties:
|
||||||
|
data:
|
||||||
|
$ref: '#/definitions/schema.SiteBrandingResp'
|
||||||
|
type: object
|
||||||
|
security:
|
||||||
|
- ApiKeyAuth: []
|
||||||
|
summary: get site interface
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
put:
|
||||||
|
description: update site info branding
|
||||||
|
parameters:
|
||||||
|
- description: branding info
|
||||||
|
in: body
|
||||||
|
name: data
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/schema.SiteBrandingReq'
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/handler.RespBody'
|
||||||
|
security:
|
||||||
|
- ApiKeyAuth: []
|
||||||
|
summary: update site info branding
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
/answer/admin/api/siteinfo/general:
|
/answer/admin/api/siteinfo/general:
|
||||||
get:
|
get:
|
||||||
description: get site general information
|
description: get site general information
|
||||||
|
@ -1866,6 +1965,88 @@ paths:
|
||||||
summary: update site info interface
|
summary: update site info interface
|
||||||
tags:
|
tags:
|
||||||
- admin
|
- admin
|
||||||
|
/answer/admin/api/siteinfo/legal:
|
||||||
|
get:
|
||||||
|
description: Set the legal information for the site
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- $ref: '#/definitions/handler.RespBody'
|
||||||
|
- properties:
|
||||||
|
data:
|
||||||
|
$ref: '#/definitions/schema.SiteLegalResp'
|
||||||
|
type: object
|
||||||
|
security:
|
||||||
|
- ApiKeyAuth: []
|
||||||
|
summary: Set the legal information for the site
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
put:
|
||||||
|
description: update site legal info
|
||||||
|
parameters:
|
||||||
|
- description: write info
|
||||||
|
in: body
|
||||||
|
name: data
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/schema.SiteLegalReq'
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/handler.RespBody'
|
||||||
|
security:
|
||||||
|
- ApiKeyAuth: []
|
||||||
|
summary: update site legal info
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
/answer/admin/api/siteinfo/write:
|
||||||
|
get:
|
||||||
|
description: get site interface
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- $ref: '#/definitions/handler.RespBody'
|
||||||
|
- properties:
|
||||||
|
data:
|
||||||
|
$ref: '#/definitions/schema.SiteWriteResp'
|
||||||
|
type: object
|
||||||
|
security:
|
||||||
|
- ApiKeyAuth: []
|
||||||
|
summary: get site interface
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
put:
|
||||||
|
description: update site write info
|
||||||
|
parameters:
|
||||||
|
- description: write info
|
||||||
|
in: body
|
||||||
|
name: data
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/schema.SiteWriteReq'
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/handler.RespBody'
|
||||||
|
security:
|
||||||
|
- ApiKeyAuth: []
|
||||||
|
summary: update site write info
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
/answer/admin/api/theme/options:
|
/answer/admin/api/theme/options:
|
||||||
get:
|
get:
|
||||||
description: Get theme options
|
description: Get theme options
|
||||||
|
@ -2272,6 +2453,41 @@ paths:
|
||||||
summary: get comment page
|
summary: get comment page
|
||||||
tags:
|
tags:
|
||||||
- Comment
|
- Comment
|
||||||
|
/answer/api/v1/file:
|
||||||
|
post:
|
||||||
|
consumes:
|
||||||
|
- multipart/form-data
|
||||||
|
description: upload file
|
||||||
|
parameters:
|
||||||
|
- description: identify the source of the file upload
|
||||||
|
enum:
|
||||||
|
- post
|
||||||
|
- avatar
|
||||||
|
- branding
|
||||||
|
in: formData
|
||||||
|
name: source
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
- description: file
|
||||||
|
in: formData
|
||||||
|
name: file
|
||||||
|
required: true
|
||||||
|
type: file
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- $ref: '#/definitions/handler.RespBody'
|
||||||
|
- properties:
|
||||||
|
data:
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
security:
|
||||||
|
- ApiKeyAuth: []
|
||||||
|
summary: upload file
|
||||||
|
tags:
|
||||||
|
- Upload
|
||||||
/answer/api/v1/follow:
|
/answer/api/v1/follow:
|
||||||
post:
|
post:
|
||||||
consumes:
|
consumes:
|
||||||
|
@ -3362,32 +3578,6 @@ paths:
|
||||||
summary: ActionRecord
|
summary: ActionRecord
|
||||||
tags:
|
tags:
|
||||||
- User
|
- User
|
||||||
/answer/api/v1/user/avatar/upload:
|
|
||||||
post:
|
|
||||||
consumes:
|
|
||||||
- multipart/form-data
|
|
||||||
description: UserUpdateInfo
|
|
||||||
parameters:
|
|
||||||
- description: file
|
|
||||||
in: formData
|
|
||||||
name: file
|
|
||||||
required: true
|
|
||||||
type: file
|
|
||||||
responses:
|
|
||||||
"200":
|
|
||||||
description: OK
|
|
||||||
schema:
|
|
||||||
allOf:
|
|
||||||
- $ref: '#/definitions/handler.RespBody'
|
|
||||||
- properties:
|
|
||||||
data:
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
security:
|
|
||||||
- ApiKeyAuth: []
|
|
||||||
summary: UserUpdateInfo
|
|
||||||
tags:
|
|
||||||
- User
|
|
||||||
/answer/api/v1/user/email:
|
/answer/api/v1/user/email:
|
||||||
put:
|
put:
|
||||||
consumes:
|
consumes:
|
||||||
|
@ -3708,32 +3898,6 @@ paths:
|
||||||
summary: RetrievePassWord
|
summary: RetrievePassWord
|
||||||
tags:
|
tags:
|
||||||
- User
|
- User
|
||||||
/answer/api/v1/user/post/file:
|
|
||||||
post:
|
|
||||||
consumes:
|
|
||||||
- multipart/form-data
|
|
||||||
description: upload user post file
|
|
||||||
parameters:
|
|
||||||
- description: file
|
|
||||||
in: formData
|
|
||||||
name: file
|
|
||||||
required: true
|
|
||||||
type: file
|
|
||||||
responses:
|
|
||||||
"200":
|
|
||||||
description: OK
|
|
||||||
schema:
|
|
||||||
allOf:
|
|
||||||
- $ref: '#/definitions/handler.RespBody'
|
|
||||||
- properties:
|
|
||||||
data:
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
security:
|
|
||||||
- ApiKeyAuth: []
|
|
||||||
summary: upload user post file
|
|
||||||
tags:
|
|
||||||
- User
|
|
||||||
/answer/api/v1/user/register/email:
|
/answer/api/v1/user/register/email:
|
||||||
post:
|
post:
|
||||||
consumes:
|
consumes:
|
||||||
|
|
|
@ -55,4 +55,5 @@ const (
|
||||||
SiteTypeInterface = "interface"
|
SiteTypeInterface = "interface"
|
||||||
SiteTypeBranding = "branding"
|
SiteTypeBranding = "branding"
|
||||||
SiteTypeWrite = "write"
|
SiteTypeWrite = "write"
|
||||||
|
SiteTypeLegal = "legal"
|
||||||
)
|
)
|
||||||
|
|
|
@ -65,12 +65,25 @@ func (sc *SiteInfoController) GetSiteBranding(ctx *gin.Context) {
|
||||||
// @Tags admin
|
// @Tags admin
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Success 200 {object} handler.RespBody{data=schema.SiteWriteResp}
|
// @Success 200 {object} handler.RespBody{data=schema.SiteWriteResp}
|
||||||
// @Router /answer/admin/api/siteinfo/branding [get]
|
// @Router /answer/admin/api/siteinfo/write [get]
|
||||||
func (sc *SiteInfoController) GetSiteWrite(ctx *gin.Context) {
|
func (sc *SiteInfoController) GetSiteWrite(ctx *gin.Context) {
|
||||||
resp, err := sc.siteInfoService.GetSiteWrite(ctx)
|
resp, err := sc.siteInfoService.GetSiteWrite(ctx)
|
||||||
handler.HandleResponse(ctx, err, resp)
|
handler.HandleResponse(ctx, err, resp)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetSiteLegal Set the legal information for the site
|
||||||
|
// @Summary Set the legal information for the site
|
||||||
|
// @Description Set the legal information for the site
|
||||||
|
// @Security ApiKeyAuth
|
||||||
|
// @Tags admin
|
||||||
|
// @Produce json
|
||||||
|
// @Success 200 {object} handler.RespBody{data=schema.SiteLegalResp}
|
||||||
|
// @Router /answer/admin/api/siteinfo/legal [get]
|
||||||
|
func (sc *SiteInfoController) GetSiteLegal(ctx *gin.Context) {
|
||||||
|
resp, err := sc.siteInfoService.GetSiteLegal(ctx)
|
||||||
|
handler.HandleResponse(ctx, err, resp)
|
||||||
|
}
|
||||||
|
|
||||||
// UpdateGeneral update site general information
|
// UpdateGeneral update site general information
|
||||||
// @Summary update site general information
|
// @Summary update site general information
|
||||||
// @Description update site general information
|
// @Description update site general information
|
||||||
|
@ -143,6 +156,24 @@ func (sc *SiteInfoController) UpdateSiteWrite(ctx *gin.Context) {
|
||||||
handler.HandleResponse(ctx, err, nil)
|
handler.HandleResponse(ctx, err, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UpdateSiteLegal update site legal info
|
||||||
|
// @Summary update site legal info
|
||||||
|
// @Description update site legal info
|
||||||
|
// @Security ApiKeyAuth
|
||||||
|
// @Tags admin
|
||||||
|
// @Produce json
|
||||||
|
// @Param data body schema.SiteLegalReq true "write info"
|
||||||
|
// @Success 200 {object} handler.RespBody{}
|
||||||
|
// @Router /answer/admin/api/siteinfo/legal [put]
|
||||||
|
func (sc *SiteInfoController) UpdateSiteLegal(ctx *gin.Context) {
|
||||||
|
req := &schema.SiteLegalReq{}
|
||||||
|
if handler.BindAndCheck(ctx, req) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
err := sc.siteInfoService.SaveSiteLegal(ctx, req)
|
||||||
|
handler.HandleResponse(ctx, err, nil)
|
||||||
|
}
|
||||||
|
|
||||||
// GetSMTPConfig get smtp config
|
// GetSMTPConfig get smtp config
|
||||||
// @Summary GetSMTPConfig get smtp config
|
// @Summary GetSMTPConfig get smtp config
|
||||||
// @Description GetSMTPConfig get smtp config
|
// @Description GetSMTPConfig get smtp config
|
||||||
|
|
|
@ -229,10 +229,12 @@ func (a *AnswerAPIRouter) RegisterAnswerCmsAPIRouter(r *gin.RouterGroup) {
|
||||||
r.GET("/siteinfo/interface", a.siteInfoController.GetInterface)
|
r.GET("/siteinfo/interface", a.siteInfoController.GetInterface)
|
||||||
r.GET("/siteinfo/branding", a.siteInfoController.GetSiteBranding)
|
r.GET("/siteinfo/branding", a.siteInfoController.GetSiteBranding)
|
||||||
r.GET("/siteinfo/write", a.siteInfoController.GetSiteWrite)
|
r.GET("/siteinfo/write", a.siteInfoController.GetSiteWrite)
|
||||||
|
r.GET("/siteinfo/legal", a.siteInfoController.GetSiteLegal)
|
||||||
r.PUT("/siteinfo/general", a.siteInfoController.UpdateGeneral)
|
r.PUT("/siteinfo/general", a.siteInfoController.UpdateGeneral)
|
||||||
r.PUT("/siteinfo/interface", a.siteInfoController.UpdateInterface)
|
r.PUT("/siteinfo/interface", a.siteInfoController.UpdateInterface)
|
||||||
r.PUT("/siteinfo/branding", a.siteInfoController.UpdateBranding)
|
r.PUT("/siteinfo/branding", a.siteInfoController.UpdateBranding)
|
||||||
r.PUT("/siteinfo/write", a.siteInfoController.UpdateSiteWrite)
|
r.PUT("/siteinfo/write", a.siteInfoController.UpdateSiteWrite)
|
||||||
|
r.PUT("/siteinfo/legal", a.siteInfoController.UpdateSiteLegal)
|
||||||
r.GET("/setting/smtp", a.siteInfoController.GetSMTPConfig)
|
r.GET("/setting/smtp", a.siteInfoController.GetSMTPConfig)
|
||||||
r.PUT("/setting/smtp", a.siteInfoController.UpdateSMTPConfig)
|
r.PUT("/setting/smtp", a.siteInfoController.UpdateSMTPConfig)
|
||||||
|
|
||||||
|
|
|
@ -42,6 +42,12 @@ type SiteWriteReq struct {
|
||||||
RequiredTag bool `validate:"required" form:"required_tag" json:"required_tag"`
|
RequiredTag bool `validate:"required" form:"required_tag" json:"required_tag"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SiteLegalReq site branding request
|
||||||
|
type SiteLegalReq struct {
|
||||||
|
TermsOfService string `validate:"omitempty" form:"terms_of_service" json:"terms_of_service,omitempty"`
|
||||||
|
PrivacyPolicy string `validate:"omitempty" form:"privacy_policy" json:"privacy_policy,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
// SiteGeneralResp site general response
|
// SiteGeneralResp site general response
|
||||||
type SiteGeneralResp SiteGeneralReq
|
type SiteGeneralResp SiteGeneralReq
|
||||||
|
|
||||||
|
@ -54,6 +60,9 @@ type SiteBrandingResp SiteBrandingReq
|
||||||
// SiteWriteResp site write response
|
// SiteWriteResp site write response
|
||||||
type SiteWriteResp SiteWriteReq
|
type SiteWriteResp SiteWriteReq
|
||||||
|
|
||||||
|
// SiteLegalResp site write response
|
||||||
|
type SiteLegalResp SiteLegalReq
|
||||||
|
|
||||||
// SiteInfoResp get site info response
|
// SiteInfoResp get site info response
|
||||||
type SiteInfoResp struct {
|
type SiteInfoResp struct {
|
||||||
General *SiteGeneralResp `json:"general"`
|
General *SiteGeneralResp `json:"general"`
|
||||||
|
|
|
@ -84,6 +84,20 @@ func (s *SiteInfoService) GetSiteWrite(ctx context.Context) (resp *schema.SiteWr
|
||||||
return resp, nil
|
return resp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetSiteLegal get site legal info
|
||||||
|
func (s *SiteInfoService) GetSiteLegal(ctx context.Context) (resp *schema.SiteLegalResp, err error) {
|
||||||
|
siteInfo, exist, err := s.siteInfoRepo.GetByType(ctx, constant.SiteTypeLegal)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if !exist {
|
||||||
|
return nil, errors.BadRequest(reason.SiteInfoNotFound)
|
||||||
|
}
|
||||||
|
resp = &schema.SiteLegalResp{}
|
||||||
|
_ = json.Unmarshal([]byte(siteInfo.Content), resp)
|
||||||
|
return resp, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (s *SiteInfoService) SaveSiteGeneral(ctx context.Context, req schema.SiteGeneralReq) (err error) {
|
func (s *SiteInfoService) SaveSiteGeneral(ctx context.Context, req schema.SiteGeneralReq) (err error) {
|
||||||
req.FormatSiteUrl()
|
req.FormatSiteUrl()
|
||||||
var (
|
var (
|
||||||
|
@ -159,6 +173,17 @@ func (s *SiteInfoService) SaveSiteWrite(ctx context.Context, req *schema.SiteWri
|
||||||
return s.siteInfoRepo.SaveByType(ctx, constant.SiteTypeWrite, data)
|
return s.siteInfoRepo.SaveByType(ctx, constant.SiteTypeWrite, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SaveSiteLegal save site legal configuration
|
||||||
|
func (s *SiteInfoService) SaveSiteLegal(ctx context.Context, req *schema.SiteLegalReq) (err error) {
|
||||||
|
content, _ := json.Marshal(req)
|
||||||
|
data := &entity.SiteInfo{
|
||||||
|
Type: constant.SiteTypeLegal,
|
||||||
|
Content: string(content),
|
||||||
|
Status: 1,
|
||||||
|
}
|
||||||
|
return s.siteInfoRepo.SaveByType(ctx, constant.SiteTypeLegal, data)
|
||||||
|
}
|
||||||
|
|
||||||
// GetSMTPConfig get smtp config
|
// GetSMTPConfig get smtp config
|
||||||
func (s *SiteInfoService) GetSMTPConfig(ctx context.Context) (
|
func (s *SiteInfoService) GetSMTPConfig(ctx context.Context) (
|
||||||
resp *schema.GetSMTPConfigResp, err error,
|
resp *schema.GetSMTPConfigResp, err error,
|
||||||
|
|
Loading…
Reference in New Issue