diff --git a/cmd/wire_gen.go b/cmd/wire_gen.go index 3ad59130..d62e3898 100644 --- a/cmd/wire_gen.go +++ b/cmd/wire_gen.go @@ -1,280 +1,11789 @@ -// Code generated by Wire. DO NOT EDIT. +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ -//go:generate go run github.com/google/wire/cmd/wire -//go:build !wireinject -// +build !wireinject +// Package docs Code generated by swaggo/swag. DO NOT EDIT +package docs -package answercmd +import "github.com/swaggo/swag" -import ( - "github.com/apache/answer/internal/base/conf" - "github.com/apache/answer/internal/base/cron" - "github.com/apache/answer/internal/base/data" - "github.com/apache/answer/internal/base/middleware" - "github.com/apache/answer/internal/base/server" - "github.com/apache/answer/internal/base/translator" - "github.com/apache/answer/internal/controller" - "github.com/apache/answer/internal/controller/template_render" - "github.com/apache/answer/internal/controller_admin" - "github.com/apache/answer/internal/repo/activity" - "github.com/apache/answer/internal/repo/activity_common" - "github.com/apache/answer/internal/repo/answer" - "github.com/apache/answer/internal/repo/auth" - "github.com/apache/answer/internal/repo/badge" - "github.com/apache/answer/internal/repo/badge_award" - "github.com/apache/answer/internal/repo/badge_group" - "github.com/apache/answer/internal/repo/captcha" - "github.com/apache/answer/internal/repo/collection" - "github.com/apache/answer/internal/repo/comment" - "github.com/apache/answer/internal/repo/config" - "github.com/apache/answer/internal/repo/export" - "github.com/apache/answer/internal/repo/file_record" - "github.com/apache/answer/internal/repo/limit" - "github.com/apache/answer/internal/repo/meta" - notification2 "github.com/apache/answer/internal/repo/notification" - "github.com/apache/answer/internal/repo/plugin_config" - "github.com/apache/answer/internal/repo/question" - "github.com/apache/answer/internal/repo/rank" - "github.com/apache/answer/internal/repo/reason" - "github.com/apache/answer/internal/repo/report" - "github.com/apache/answer/internal/repo/review" - "github.com/apache/answer/internal/repo/revision" - "github.com/apache/answer/internal/repo/role" - "github.com/apache/answer/internal/repo/search_common" - "github.com/apache/answer/internal/repo/site_info" - "github.com/apache/answer/internal/repo/tag" - "github.com/apache/answer/internal/repo/tag_common" - "github.com/apache/answer/internal/repo/unique" - "github.com/apache/answer/internal/repo/user" - "github.com/apache/answer/internal/repo/user_external_login" - "github.com/apache/answer/internal/repo/user_notification_config" - "github.com/apache/answer/internal/router" - "github.com/apache/answer/internal/service/action" - activity2 "github.com/apache/answer/internal/service/activity" - activity_common2 "github.com/apache/answer/internal/service/activity_common" - "github.com/apache/answer/internal/service/activity_queue" - "github.com/apache/answer/internal/service/answer_common" - auth2 "github.com/apache/answer/internal/service/auth" - badge2 "github.com/apache/answer/internal/service/badge" - collection2 "github.com/apache/answer/internal/service/collection" - "github.com/apache/answer/internal/service/collection_common" - comment2 "github.com/apache/answer/internal/service/comment" - "github.com/apache/answer/internal/service/comment_common" - config2 "github.com/apache/answer/internal/service/config" - "github.com/apache/answer/internal/service/content" - "github.com/apache/answer/internal/service/dashboard" - "github.com/apache/answer/internal/service/event_queue" - export2 "github.com/apache/answer/internal/service/export" - file_record2 "github.com/apache/answer/internal/service/file_record" - "github.com/apache/answer/internal/service/follow" - "github.com/apache/answer/internal/service/importer" - meta2 "github.com/apache/answer/internal/service/meta" - "github.com/apache/answer/internal/service/meta_common" - "github.com/apache/answer/internal/service/notice_queue" - "github.com/apache/answer/internal/service/notification" - "github.com/apache/answer/internal/service/notification_common" - "github.com/apache/answer/internal/service/object_info" - "github.com/apache/answer/internal/service/plugin_common" - "github.com/apache/answer/internal/service/question_common" - rank2 "github.com/apache/answer/internal/service/rank" - reason2 "github.com/apache/answer/internal/service/reason" - report2 "github.com/apache/answer/internal/service/report" - "github.com/apache/answer/internal/service/report_handle" - review2 "github.com/apache/answer/internal/service/review" - "github.com/apache/answer/internal/service/revision_common" - role2 "github.com/apache/answer/internal/service/role" - "github.com/apache/answer/internal/service/search_parser" - "github.com/apache/answer/internal/service/service_config" - "github.com/apache/answer/internal/service/siteinfo" - "github.com/apache/answer/internal/service/siteinfo_common" - tag2 "github.com/apache/answer/internal/service/tag" - tag_common2 "github.com/apache/answer/internal/service/tag_common" - "github.com/apache/answer/internal/service/uploader" - "github.com/apache/answer/internal/service/user_admin" - "github.com/apache/answer/internal/service/user_common" - user_external_login2 "github.com/apache/answer/internal/service/user_external_login" - user_notification_config2 "github.com/apache/answer/internal/service/user_notification_config" - "github.com/segmentfault/pacman" - "github.com/segmentfault/pacman/log" -) +const docTemplate = `{ + "schemes": {{ marshal .Schemes }}, + "swagger": "2.0", + "info": { + "description": "{{escape .Description}}", + "title": "{{.Title}}", + "contact": {}, + "version": "{{.Version}}" + }, + "host": "{{.Host}}", + "basePath": "{{.BasePath}}", + "paths": { + "/": { + "get": { + "description": "if config file not exist try to redirect to install page", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "installation" + ], + "summary": "if config file not exist try to redirect to install page", + "responses": {} + } + }, + "/answer/admin/api/answer/page": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "Status:[available,deleted,pending]", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "AdminAnswerPage admin answer page", + "parameters": [ + { + "type": "integer", + "description": "page size", + "name": "page", + "in": "query" + }, + { + "type": "integer", + "description": "page size", + "name": "page_size", + "in": "query" + }, + { + "enum": [ + "available", + "deleted", + "pending" + ], + "type": "string", + "description": "user status", + "name": "status", + "in": "query" + }, + { + "type": "string", + "description": "answer id or question title", + "name": "query", + "in": "query" + }, + { + "type": "string", + "description": "question id", + "name": "question_id", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/admin/api/answer/status": { + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update answer status", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "update answer status", + "parameters": [ + { + "description": "AdminUpdateAnswerStatusReq", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.AdminUpdateAnswerStatusReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/admin/api/badge/status": { + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update badge status", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "AdminBadge" + ], + "summary": "update badge status", + "parameters": [ + { + "description": "UpdateBadgeStatusReq", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.UpdateBadgeStatusReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/admin/api/badges": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "list all badges by page", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "AdminBadge" + ], + "summary": "list all badges by page", + "parameters": [ + { + "type": "integer", + "description": "page", + "name": "page", + "in": "query" + }, + { + "type": "integer", + "description": "page size", + "name": "page_size", + "in": "query" + }, + { + "enum": [ + "", + "active", + "inactive" + ], + "type": "string", + "description": "badge status", + "name": "status", + "in": "query" + }, + { + "type": "string", + "description": "search param", + "name": "q", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.GetBadgeListPagedResp" + } + } + } + } + ] + } + } + } + } + }, + "/answer/admin/api/dashboard": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "DashboardInfo", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "DashboardInfo", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/admin/api/delete/permanently": { + "delete": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "delete permanently", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "delete permanently", + "parameters": [ + { + "description": "DeletePermanentlyReq", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.DeletePermanentlyReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/admin/api/language/options": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "Get language options", + "produces": [ + "application/json" + ], + "tags": [ + "Lang" + ], + "summary": "Get language options", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/admin/api/plugin/config": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get plugin config", + "produces": [ + "application/json" + ], + "tags": [ + "AdminPlugin" + ], + "summary": "get plugin config", + "parameters": [ + { + "type": "string", + "description": "plugin_slug_name", + "name": "plugin_slug_name", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.GetPluginConfigResp" + } + } + } + ] + } + } + } + }, + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update plugin config", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "AdminPlugin" + ], + "summary": "update plugin config", + "parameters": [ + { + "description": "UpdatePluginConfigReq", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.UpdatePluginConfigReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/admin/api/plugin/status": { + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update plugin status", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "AdminPlugin" + ], + "summary": "update plugin status", + "parameters": [ + { + "description": "UpdatePluginStatusReq", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.UpdatePluginStatusReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/admin/api/plugins": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get plugin list", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "AdminPlugin" + ], + "summary": "get plugin list", + "parameters": [ + { + "type": "string", + "description": "status: active/inactive", + "name": "status", + "in": "query" + }, + { + "type": "boolean", + "description": "have config", + "name": "have_config", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.GetPluginListResp" + } + } + } + } + ] + } + } + } + } + }, + "/answer/admin/api/question/page": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "Status:[available,closed,deleted,pending]", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "AdminQuestionPage admin question page", + "parameters": [ + { + "type": "integer", + "description": "page size", + "name": "page", + "in": "query" + }, + { + "type": "integer", + "description": "page size", + "name": "page_size", + "in": "query" + }, + { + "enum": [ + "available", + "closed", + "deleted", + "pending" + ], + "type": "string", + "description": "user status", + "name": "status", + "in": "query" + }, + { + "type": "string", + "description": "question id or title", + "name": "query", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/admin/api/question/status": { + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update question status", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "update question status", + "parameters": [ + { + "description": "AdminUpdateQuestionStatusReq", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.AdminUpdateQuestionStatusReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/admin/api/reasons": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get reasons by object type and action", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "reason" + ], + "summary": "get reasons by object type and action", + "parameters": [ + { + "enum": [ + "question", + "answer", + "comment", + "user" + ], + "type": "string", + "description": "object_type", + "name": "object_type", + "in": "query", + "required": true + }, + { + "enum": [ + "status", + "close", + "flag", + "review" + ], + "type": "string", + "description": "action", + "name": "action", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/admin/api/roles": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get role list", + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "get role list", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.GetRoleResp" + } + } + } + } + ] + } + } + } + } + }, + "/answer/admin/api/setting/privileges": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "GetPrivilegesConfig get privileges config", + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "GetPrivilegesConfig get privileges config", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.GetPrivilegesConfigResp" + } + } + } + ] + } + } + } + }, + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update privileges config", + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "update privileges config", + "parameters": [ + { + "description": "config", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.UpdatePrivilegesConfigReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/admin/api/setting/smtp": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "GetSMTPConfig get smtp config", + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "GetSMTPConfig get smtp config", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.GetSMTPConfigResp" + } + } + } + ] + } + } + } + }, + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update smtp config", + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "update smtp config", + "parameters": [ + { + "description": "smtp config", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.UpdateSMTPConfigReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/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/custom-css-html": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get site info custom html css config", + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "get site info custom html css config", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.SiteCustomCssHTMLResp" + } + } + } + ] + } + } + } + }, + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update site custom css html config", + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "update site custom css html config", + "parameters": [ + { + "description": "login info", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.SiteCustomCssHTMLReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/admin/api/siteinfo/general": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get site general information", + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "get site general information", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.SiteGeneralResp" + } + } + } + ] + } + } + } + }, + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update site general information", + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "update site general information", + "parameters": [ + { + "description": "general", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.SiteGeneralReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/admin/api/siteinfo/interface": { + "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.SiteInterfaceResp" + } + } + } + ] + } + } + } + }, + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update site info interface", + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "update site info interface", + "parameters": [ + { + "description": "general", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.SiteInterfaceReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/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/login": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get site info login config", + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "get site info login config", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.SiteLoginResp" + } + } + } + ] + } + } + } + }, + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update site login", + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "update site login", + "parameters": [ + { + "description": "login info", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.SiteLoginReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/admin/api/siteinfo/seo": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get site seo information", + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "get site seo information", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.SiteSeoResp" + } + } + } + ] + } + } + } + }, + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update site seo information", + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "update site seo information", + "parameters": [ + { + "description": "seo", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.SiteSeoReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/admin/api/siteinfo/theme": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get site info theme config", + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "get site info theme config", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.SiteThemeResp" + } + } + } + ] + } + } + } + }, + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update site custom css html config", + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "update site custom css html config", + "parameters": [ + { + "description": "login info", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.SiteThemeReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/admin/api/siteinfo/users": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get site user config", + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "get site user config", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.SiteUsersResp" + } + } + } + ] + } + } + } + }, + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update site info config about users", + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "update site info config about users", + "parameters": [ + { + "description": "users info", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.SiteUsersReq" + } + } + ], + "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": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "Get theme options", + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "Get theme options", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/admin/api/user": { + "post": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "add user", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "add user", + "parameters": [ + { + "description": "user", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.AddUserReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/admin/api/user/activation": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get user activation", + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "get user activation", + "parameters": [ + { + "type": "string", + "description": "user id", + "name": "user_id", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.GetUserActivationResp" + } + } + } + ] + } + } + } + } + }, + "/answer/admin/api/user/password": { + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update user password", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "update user password", + "parameters": [ + { + "description": "user", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.UpdateUserPasswordReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/admin/api/user/profile": { + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "edit user profile", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "edit user profile", + "parameters": [ + { + "description": "user", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.EditUserProfileReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/admin/api/user/role": { + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update user role", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "update user role", + "parameters": [ + { + "description": "user", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.UpdateUserRoleReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/admin/api/user/status": { + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update user", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "update user", + "parameters": [ + { + "description": "user", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.UpdateUserStatusReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/admin/api/users": { + "post": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "add users", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "add users", + "parameters": [ + { + "description": "user", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.AddUsersReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/admin/api/users/activation": { + "post": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "send user activation", + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "send user activation", + "parameters": [ + { + "description": "SendUserActivationReq", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.SendUserActivationReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/admin/api/users/page": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get user page", + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "get user page", + "parameters": [ + { + "type": "integer", + "description": "page size", + "name": "page", + "in": "query" + }, + { + "type": "integer", + "description": "page size", + "name": "page_size", + "in": "query" + }, + { + "type": "string", + "description": "search query: email, username or id:[id]", + "name": "query", + "in": "query" + }, + { + "type": "boolean", + "description": "staff user", + "name": "staff", + "in": "query" + }, + { + "enum": [ + "suspended", + "deleted", + "inactive" + ], + "type": "string", + "description": "user status", + "name": "status", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/definitions/pager.PageModel" + }, + { + "type": "object", + "properties": { + "records": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.GetUserPageResp" + } + } + } + } + ] + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/activity/timeline": { + "get": { + "description": "get object timeline", + "produces": [ + "application/json" + ], + "tags": [ + "Comment" + ], + "summary": "get object timeline", + "parameters": [ + { + "type": "string", + "description": "object id", + "name": "object_id", + "in": "query" + }, + { + "type": "string", + "description": "tag slug name", + "name": "tag_slug_name", + "in": "query" + }, + { + "enum": [ + "question", + "answer", + "tag" + ], + "type": "string", + "description": "object type", + "name": "object_type", + "in": "query" + }, + { + "type": "boolean", + "description": "is show vote", + "name": "show_vote", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.GetObjectTimelineResp" + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/activity/timeline/detail": { + "get": { + "description": "get object timeline detail", + "produces": [ + "application/json" + ], + "tags": [ + "Comment" + ], + "summary": "get object timeline detail", + "parameters": [ + { + "type": "string", + "description": "revision id", + "name": "revision_id", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.GetObjectTimelineResp" + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/answer": { + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "Update Answer", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "api-answer" + ], + "summary": "Update Answer", + "parameters": [ + { + "description": "AnswerUpdateReq", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.AnswerUpdateReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + } + }, + "post": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "Insert Answer", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "api-answer" + ], + "summary": "Insert Answer", + "parameters": [ + { + "description": "AnswerAddReq", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.AnswerAddReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + } + }, + "delete": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "delete answer", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "api-answer" + ], + "summary": "delete answer", + "parameters": [ + { + "description": "answer", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.RemoveAnswerReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/answer/acceptance": { + "post": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "Accepted", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "api-answer" + ], + "summary": "Accepted", + "parameters": [ + { + "description": "AcceptAnswerReq", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.AcceptAnswerReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + } + } + }, + "/answer/api/v1/answer/info": { + "get": { + "description": "Get Answer", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "api-answer" + ], + "summary": "Get Answer", + "parameters": [ + { + "type": "string", + "default": "1", + "description": "Answer TagID", + "name": "id", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + } + } + }, + "/answer/api/v1/answer/page": { + "get": { + "description": "AnswerList \u003cbr\u003e \u003cb\u003eorder\u003c/b\u003e (default or updated)", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "api-answer" + ], + "summary": "AnswerList", + "parameters": [ + { + "type": "string", + "description": "question_id", + "name": "question_id", + "in": "query", + "required": true + }, + { + "type": "string", + "description": "order", + "name": "order", + "in": "query", + "required": true + }, + { + "type": "string", + "description": "page", + "name": "page", + "in": "query", + "required": true + }, + { + "type": "string", + "description": "page_size", + "name": "page_size", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + } + } + }, + "/answer/api/v1/answer/recover": { + "post": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "recover deleted answer", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Answer" + ], + "summary": "recover answer", + "parameters": [ + { + "description": "answer", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.RecoverAnswerReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/badge": { + "get": { + "description": "get badge info", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "api-badge" + ], + "summary": "get badge info", + "parameters": [ + { + "type": "string", + "default": "string", + "description": "id", + "name": "id", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.GetBadgeInfoResp" + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/badge/awards/page": { + "get": { + "description": "get badge award list", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "api-badge" + ], + "summary": "get badge award list", + "parameters": [ + { + "type": "integer", + "description": "page", + "name": "page", + "in": "query" + }, + { + "type": "integer", + "description": "page size", + "name": "page_size", + "in": "query" + }, + { + "type": "string", + "description": "badge id", + "name": "badge_id", + "in": "query", + "required": true + }, + { + "type": "string", + "description": "only list the award by username", + "name": "username", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.GetBadgeInfoResp" + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/badge/user/awards": { + "get": { + "description": "get user badge award list", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "api-badge" + ], + "summary": "get user badge award list", + "parameters": [ + { + "type": "string", + "description": "user name", + "name": "username", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.GetUserBadgeAwardListResp" + } + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/badge/user/awards/recent": { + "get": { + "description": "get user badge award list", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "api-badge" + ], + "summary": "get user badge award list", + "parameters": [ + { + "type": "string", + "description": "user name", + "name": "username", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.GetUserBadgeAwardListResp" + } + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/badges": { + "get": { + "description": "list all badges group by group", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "api-badge" + ], + "summary": "list all badges group by group", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.GetBadgeListResp" + } + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/collection/switch": { + "post": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "add collection", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Collection" + ], + "summary": "add collection", + "parameters": [ + { + "description": "collection", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.CollectionSwitchReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.CollectionSwitchResp" + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/comment": { + "get": { + "description": "get comment by id", + "produces": [ + "application/json" + ], + "tags": [ + "Comment" + ], + "summary": "get comment by id", + "parameters": [ + { + "type": "string", + "description": "id", + "name": "id", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/definitions/pager.PageModel" + }, + { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.GetCommentResp" + } + } + } + } + ] + } + } + } + ] + } + } + } + }, + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update comment", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Comment" + ], + "summary": "update comment", + "parameters": [ + { + "description": "comment", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.UpdateCommentReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + }, + "post": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "add comment", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Comment" + ], + "summary": "add comment", + "parameters": [ + { + "description": "comment", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.AddCommentReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.GetCommentResp" + } + } + } + ] + } + } + } + }, + "delete": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "remove comment", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Comment" + ], + "summary": "remove comment", + "parameters": [ + { + "description": "comment", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.RemoveCommentReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/comment/page": { + "get": { + "description": "get comment page", + "produces": [ + "application/json" + ], + "tags": [ + "Comment" + ], + "summary": "get comment page", + "parameters": [ + { + "type": "integer", + "description": "page", + "name": "page", + "in": "query" + }, + { + "type": "integer", + "description": "page size", + "name": "page_size", + "in": "query" + }, + { + "type": "string", + "description": "object id", + "name": "object_id", + "in": "query", + "required": true + }, + { + "enum": [ + "vote" + ], + "type": "string", + "description": "query condition", + "name": "query_cond", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/definitions/pager.PageModel" + }, + { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.GetCommentResp" + } + } + } + } + ] + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/connector/binding/email": { + "post": { + "description": "external login binding user send email", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "PluginConnector" + ], + "summary": "external login binding user send email", + "parameters": [ + { + "description": "external login binding user send email", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.ExternalLoginBindingUserSendEmailReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.ExternalLoginBindingUserSendEmailResp" + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/connector/info": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get all enabled connectors", + "produces": [ + "application/json" + ], + "tags": [ + "PluginConnector" + ], + "summary": "get all enabled connectors", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.ConnectorInfoResp" + } + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/connector/user/info": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get all connectors info about user", + "produces": [ + "application/json" + ], + "tags": [ + "PluginConnector" + ], + "summary": "get all connectors info about user", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.ConnectorUserInfoResp" + } + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/connector/user/unbinding": { + "delete": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "unbind external user login", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "PluginConnector" + ], + "summary": "unbind external user login", + "parameters": [ + { + "description": "ExternalLoginUnbindingReq", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.ExternalLoginUnbindingReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/embed/config": { + "get": { + "description": "GetEmbedConfig", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "PluginEmbed" + ], + "summary": "GetEmbedConfig", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/plugin.EmbedConfig" + } + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/file": { + "post": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "upload file", + "consumes": [ + "multipart/form-data" + ], + "tags": [ + "Upload" + ], + "summary": "upload file", + "parameters": [ + { + "enum": [ + "post", + "post_attachment", + "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": { + "post": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "follow object or cancel follow operation", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Activity" + ], + "summary": "follow object or cancel follow operation", + "parameters": [ + { + "description": "follow", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.FollowReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.FollowResp" + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/follow/tags": { + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update user follow tags", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Activity" + ], + "summary": "update user follow tags", + "parameters": [ + { + "description": "follow", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.UpdateFollowTagsReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/language/config": { + "get": { + "description": "get language config mapping", + "produces": [ + "application/json" + ], + "tags": [ + "Lang" + ], + "summary": "get language config mapping", + "parameters": [ + { + "type": "string", + "description": "Accept-Language", + "name": "Accept-Language", + "in": "header", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/language/options": { + "get": { + "description": "Get language options", + "produces": [ + "application/json" + ], + "tags": [ + "Lang" + ], + "summary": "Get language options", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/meta/reaction": { + "get": { + "description": "get reaction for an object", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Meta" + ], + "summary": "get reaction", + "parameters": [ + { + "type": "string", + "description": "object_id", + "name": "object_id", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.ReactionRespItem" + } + } + } + ] + } + } + } + }, + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update reaction. if not exist, add one", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Meta" + ], + "summary": "add or update reaction", + "parameters": [ + { + "description": "reaction", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.UpdateReactionReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/notification/page": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get notification list", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Notification" + ], + "summary": "get notification list", + "parameters": [ + { + "type": "integer", + "description": "page size", + "name": "page", + "in": "query" + }, + { + "type": "integer", + "description": "page size", + "name": "page_size", + "in": "query" + }, + { + "enum": [ + "inbox", + "achievement" + ], + "type": "string", + "description": "type", + "name": "type", + "in": "query", + "required": true + }, + { + "enum": [ + "all", + "posts", + "invites", + "votes" + ], + "type": "string", + "description": "inbox_type", + "name": "inbox_type", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/notification/read/state": { + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "ClearUnRead", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Notification" + ], + "summary": "ClearUnRead", + "parameters": [ + { + "description": "NotificationClearIDRequest", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.NotificationClearIDRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/notification/read/state/all": { + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "ClearUnRead", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Notification" + ], + "summary": "ClearUnRead", + "parameters": [ + { + "description": "NotificationClearRequest", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.NotificationClearRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/notification/status": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "GetRedDot", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Notification" + ], + "summary": "GetRedDot", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + }, + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "DelRedDot", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Notification" + ], + "summary": "DelRedDot", + "parameters": [ + { + "description": "NotificationClearRequest", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.NotificationClearRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/permission": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "check user permission", + "produces": [ + "application/json" + ], + "tags": [ + "Permission" + ], + "summary": "check user permission", + "parameters": [ + { + "type": "string", + "description": "access-token", + "name": "Authorization", + "in": "header", + "required": true + }, + { + "enum": [ + "question.add", + "question.edit", + "question.edit_without_review", + "question.delete", + "question.close", + "question.reopen", + "question.vote_up", + "question.vote_down", + "question.pin", + "question.unpin", + "question.hide", + "question.show", + "answer.add", + "answer.edit", + "answer.edit_without_review", + "answer.delete", + "answer.accept", + "answer.vote_up", + "answer.vote_down", + "answer.invite_someone_to_answer", + "comment.add", + "comment.edit", + "comment.delete", + "comment.vote_up", + "comment.vote_down", + "report.add", + "tag.add", + "tag.edit", + "tag.edit_slug_name", + "tag.edit_without_review", + "tag.delete", + "tag.synonym", + "link.url_limit", + "vote.detail", + "answer.audit", + "question.audit", + "tag.audit", + "tag.use_reserved_tag" + ], + "type": "string", + "description": "permission key", + "name": "action", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "type": "object", + "additionalProperties": { + "type": "boolean" + } + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/personal/answer/page": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "list personal answers", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Personal" + ], + "summary": "list personal answers", + "parameters": [ + { + "type": "string", + "default": "string", + "description": "username", + "name": "username", + "in": "query", + "required": true + }, + { + "enum": [ + "newest", + "score" + ], + "type": "string", + "description": "order", + "name": "order", + "in": "query", + "required": true + }, + { + "type": "string", + "default": "0", + "description": "page", + "name": "page", + "in": "query", + "required": true + }, + { + "type": "string", + "default": "20", + "description": "page_size", + "name": "page_size", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/personal/collection/page": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "list personal collections", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Collection" + ], + "summary": "list personal collections", + "parameters": [ + { + "type": "string", + "default": "0", + "description": "page", + "name": "page", + "in": "query", + "required": true + }, + { + "type": "string", + "default": "20", + "description": "page_size", + "name": "page_size", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/personal/comment/page": { + "get": { + "description": "user personal comment list", + "produces": [ + "application/json" + ], + "tags": [ + "Comment" + ], + "summary": "user personal comment list", + "parameters": [ + { + "type": "integer", + "description": "page", + "name": "page", + "in": "query" + }, + { + "type": "integer", + "description": "page size", + "name": "page_size", + "in": "query" + }, + { + "type": "string", + "description": "username", + "name": "username", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/definitions/pager.PageModel" + }, + { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.GetCommentPersonalWithPageResp" + } + } + } + } + ] + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/personal/qa/top": { + "get": { + "description": "UserTop", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Question" + ], + "summary": "UserTop", + "parameters": [ + { + "type": "string", + "default": "string", + "description": "username", + "name": "username", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/personal/rank/page": { + "get": { + "description": "user personal rank list", + "produces": [ + "application/json" + ], + "tags": [ + "Rank" + ], + "summary": "user personal rank list", + "parameters": [ + { + "type": "integer", + "description": "page", + "name": "page", + "in": "query" + }, + { + "type": "integer", + "description": "page size", + "name": "page_size", + "in": "query" + }, + { + "type": "string", + "description": "username", + "name": "username", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/definitions/pager.PageModel" + }, + { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.GetRankPersonalPageResp" + } + } + } + } + ] + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/personal/user/info": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "GetOtherUserInfoByUsername", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "User" + ], + "summary": "GetOtherUserInfoByUsername", + "parameters": [ + { + "type": "string", + "description": "username", + "name": "username", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.GetOtherUserInfoResp" + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/personal/vote/page": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get user personal votes", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Activity" + ], + "summary": "get user personal votes", + "parameters": [ + { + "type": "integer", + "description": "page size", + "name": "page", + "in": "query" + }, + { + "type": "integer", + "description": "page size", + "name": "page_size", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/definitions/pager.PageModel" + }, + { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.GetVoteWithPageResp" + } + } + } + } + ] + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/plugin/status": { + "get": { + "description": "get all plugins status", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Plugin" + ], + "summary": "get all plugins status", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.GetPluginListResp" + } + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/post/render": { + "post": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "render post content", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Upload" + ], + "summary": "render post content", + "parameters": [ + { + "description": "PostRenderReq", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.PostRenderReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/question": { + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update question", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Question" + ], + "summary": "update question", + "parameters": [ + { + "description": "question", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.QuestionUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + }, + "post": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "add question", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Question" + ], + "summary": "add question", + "parameters": [ + { + "description": "question", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.QuestionAdd" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + }, + "delete": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "delete question", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Question" + ], + "summary": "delete question", + "parameters": [ + { + "description": "question", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.RemoveQuestionReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/question/answer": { + "post": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "add question and answer", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Question" + ], + "summary": "add question and answer", + "parameters": [ + { + "description": "question", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.QuestionAddByAnswer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/question/info": { + "get": { + "description": "get question details", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Question" + ], + "summary": "get question details", + "parameters": [ + { + "type": "string", + "default": "1", + "description": "Question TagID", + "name": "id", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + } + } + }, + "/answer/api/v1/question/invite": { + "get": { + "description": "get question invite user info", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Question" + ], + "summary": "get question invite user info", + "parameters": [ + { + "type": "string", + "default": "1", + "description": "Question ID", + "name": "id", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + } + }, + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update question invite user", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Question" + ], + "summary": "update question invite user", + "parameters": [ + { + "description": "question", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.QuestionUpdateInviteUser" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/question/link": { + "get": { + "description": "get question link", + "tags": [ + "Question" + ], + "summary": "get question link", + "parameters": [ + { + "minimum": 1, + "type": "integer", + "name": "in_days", + "in": "query" + }, + { + "enum": [ + "newest", + "active", + "hot", + "score", + "unanswered", + "recommend", + "frequent" + ], + "type": "string", + "name": "order", + "in": "query" + }, + { + "minimum": 1, + "type": "integer", + "name": "page", + "in": "query" + }, + { + "maximum": 100, + "minimum": 1, + "type": "integer", + "name": "page_size", + "in": "query" + }, + { + "type": "string", + "name": "question_id", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/definitions/pager.PageModel" + }, + { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.QuestionPageResp" + } + } + } + } + ] + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/question/operation": { + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "Operation question \\n operation [pin unpin hide show]", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Question" + ], + "summary": "Operation question", + "parameters": [ + { + "description": "question", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.OperationQuestionReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/question/page": { + "get": { + "description": "get questions by page", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Question" + ], + "summary": "get questions by page", + "parameters": [ + { + "description": "QuestionPageReq", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.QuestionPageReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/definitions/pager.PageModel" + }, + { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.QuestionPageResp" + } + } + } + } + ] + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/question/recommend/page": { + "get": { + "description": "get recommend questions by page", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Question" + ], + "summary": "get recommend questions by page", + "parameters": [ + { + "description": "QuestionPageReq", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.QuestionPageReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/definitions/pager.PageModel" + }, + { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.QuestionPageResp" + } + } + } + } + ] + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/question/recover": { + "post": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "recover deleted question", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Question" + ], + "summary": "recover deleted question", + "parameters": [ + { + "description": "question", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.QuestionRecoverReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/question/reopen": { + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "reopen question", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Question" + ], + "summary": "reopen question", + "parameters": [ + { + "description": "question", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.ReopenQuestionReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/question/similar": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "fuzzy query similar questions based on title", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Question" + ], + "summary": "fuzzy query similar questions based on title", + "parameters": [ + { + "type": "string", + "default": "string", + "description": "title", + "name": "title", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/question/similar/tag": { + "get": { + "description": "Search Similar Question", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Question" + ], + "summary": "Search Similar Question", + "parameters": [ + { + "type": "string", + "default": "", + "description": "question_id", + "name": "question_id", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + } + } + }, + "/answer/api/v1/question/status": { + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "Close question", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Question" + ], + "summary": "Close question", + "parameters": [ + { + "description": "question", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.CloseQuestionReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/question/tags": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get tag list", + "produces": [ + "application/json" + ], + "tags": [ + "Tag" + ], + "summary": "get tag list", + "parameters": [ + { + "type": "string", + "description": "tag", + "name": "tag", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.GetTagBasicResp" + } + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/reasons": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get reasons by object type and action", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "reason" + ], + "summary": "get reasons by object type and action", + "parameters": [ + { + "enum": [ + "question", + "answer", + "comment", + "user" + ], + "type": "string", + "description": "object_type", + "name": "object_type", + "in": "query", + "required": true + }, + { + "enum": [ + "status", + "close", + "flag", + "review" + ], + "type": "string", + "description": "action", + "name": "action", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/render/config": { + "get": { + "description": "GetRenderConfig", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "PluginRender" + ], + "summary": "GetRenderConfig", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/plugin.RenderConfig" + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/report": { + "post": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "add report \u003cbr\u003e source (question, answer, comment, user)", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Report" + ], + "summary": "add report", + "parameters": [ + { + "description": "report", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.AddReportReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/report/review": { + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "review report", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Report" + ], + "summary": "review report", + "parameters": [ + { + "description": "flag", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.ReviewReportReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/report/unreviewed/post": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get unreviewed report post page", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Report" + ], + "summary": "get unreviewed report post page", + "parameters": [ + { + "type": "integer", + "description": "page", + "name": "page", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/definitions/pager.PageModel" + }, + { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.GetReportListPageResp" + } + } + } + } + ] + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/review/pending/post": { + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update review", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Review" + ], + "summary": "update review", + "parameters": [ + { + "description": "review", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.UpdateReviewReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/review/pending/post/page": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get unreviewed post page", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Review" + ], + "summary": "get unreviewed post page", + "parameters": [ + { + "type": "integer", + "description": "page", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "object_id", + "name": "object_id", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/definitions/pager.PageModel" + }, + { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.GetUnreviewedPostPageResp" + } + } + } + } + ] + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/reviewing/type": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get reviewing type", + "produces": [ + "application/json" + ], + "tags": [ + "Revision" + ], + "summary": "get reviewing type", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.GetReviewingTypeResp" + } + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/revisions": { + "get": { + "description": "get revision list", + "produces": [ + "application/json" + ], + "tags": [ + "Revision" + ], + "summary": "get revision list", + "parameters": [ + { + "type": "string", + "description": "object id", + "name": "object_id", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.GetRevisionResp" + } + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/revisions/audit": { + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "revision audit operation:approve or reject", + "produces": [ + "application/json" + ], + "tags": [ + "Revision" + ], + "summary": "revision audit", + "parameters": [ + { + "description": "audit", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.RevisionAuditReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/revisions/edit/check": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "check can update revision", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Revision" + ], + "summary": "check can update revision", + "parameters": [ + { + "type": "string", + "default": "string", + "description": "id", + "name": "id", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/revisions/unreviewed": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get unreviewed revision list", + "produces": [ + "application/json" + ], + "tags": [ + "Revision" + ], + "summary": "get unreviewed revision list", + "parameters": [ + { + "type": "string", + "description": "page id", + "name": "page", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/definitions/pager.PageModel" + }, + { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.GetUnreviewedRevisionResp" + } + } + } + } + ] + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/search": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "search object", + "produces": [ + "application/json" + ], + "tags": [ + "Search" + ], + "summary": "search object", + "parameters": [ + { + "type": "string", + "description": "query string", + "name": "q", + "in": "query", + "required": true + }, + { + "enum": [ + "newest", + "active", + "score", + "relevance" + ], + "type": "string", + "description": "order", + "name": "order", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.SearchResp" + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/search/desc": { + "get": { + "description": "get search description", + "produces": [ + "application/json" + ], + "tags": [ + "Search" + ], + "summary": "get search description", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.SearchResp" + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/siteinfo": { + "get": { + "description": "get site info", + "produces": [ + "application/json" + ], + "tags": [ + "site" + ], + "summary": "get site info", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.SiteInfoResp" + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/siteinfo/legal": { + "get": { + "description": "get site legal info", + "produces": [ + "application/json" + ], + "tags": [ + "site" + ], + "summary": "get site legal info", + "parameters": [ + { + "enum": [ + "tos", + "privacy" + ], + "type": "string", + "description": "legal information type", + "name": "info_type", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.GetSiteLegalInfoResp" + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/tag": { + "get": { + "description": "get tag one", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Tag" + ], + "summary": "get tag one", + "parameters": [ + { + "type": "string", + "description": "tag id", + "name": "tag_id", + "in": "query", + "required": true + }, + { + "type": "string", + "description": "tag name", + "name": "tag_name", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.GetTagResp" + } + } + } + ] + } + } + } + }, + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update tag", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Tag" + ], + "summary": "update tag", + "parameters": [ + { + "description": "tag", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.UpdateTagReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + }, + "post": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "add tag", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Tag" + ], + "summary": "add tag", + "parameters": [ + { + "description": "tag", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.AddTagReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + }, + "delete": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "delete tag", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Tag" + ], + "summary": "delete tag", + "parameters": [ + { + "description": "tag", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.RemoveTagReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/tag/recover": { + "post": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "recover delete tag", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Tag" + ], + "summary": "recover delete tag", + "parameters": [ + { + "description": "tag", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.RecoverTagReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/tag/synonym": { + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update tag", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Tag" + ], + "summary": "update tag", + "parameters": [ + { + "description": "tag", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.UpdateTagSynonymReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/tag/synonyms": { + "get": { + "description": "get tag synonyms", + "produces": [ + "application/json" + ], + "tags": [ + "Tag" + ], + "summary": "get tag synonyms", + "parameters": [ + { + "type": "integer", + "description": "tag id", + "name": "tag_id", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.GetTagSynonymsResp" + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/tags": { + "get": { + "description": "get tags list by slug name", + "produces": [ + "application/json" + ], + "tags": [ + "Tag" + ], + "summary": "get tags list", + "parameters": [ + { + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "csv", + "description": "string collection", + "name": "tags", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.GetTagBasicResp" + } + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/tags/following": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get following tag list", + "produces": [ + "application/json" + ], + "tags": [ + "Tag" + ], + "summary": "get following tag list", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.GetFollowingTagsResp" + } + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/tags/page": { + "get": { + "description": "get tag page", + "produces": [ + "application/json" + ], + "tags": [ + "Tag" + ], + "summary": "get tag page", + "parameters": [ + { + "type": "integer", + "description": "page size", + "name": "page", + "in": "query" + }, + { + "type": "integer", + "description": "page size", + "name": "page_size", + "in": "query" + }, + { + "type": "string", + "description": "slug_name", + "name": "slug_name", + "in": "query" + }, + { + "enum": [ + "popular", + "name", + "newest" + ], + "type": "string", + "description": "query condition", + "name": "query_cond", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/definitions/pager.PageModel" + }, + { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.GetTagPageResp" + } + } + } + } + ] + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/user/action/record": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "ActionRecord", + "tags": [ + "User" + ], + "summary": "ActionRecord", + "parameters": [ + { + "enum": [ + "login", + "e_mail", + "find_pass" + ], + "type": "string", + "description": "action", + "name": "action", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.ActionRecordResp" + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/user/email": { + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "user change email verification", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "User" + ], + "summary": "user change email verification", + "parameters": [ + { + "description": "UserChangeEmailVerifyReq", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.UserChangeEmailVerifyReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/user/email/change/code": { + "post": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "send email to the user email then change their email", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "User" + ], + "summary": "send email to the user email then change their email", + "parameters": [ + { + "description": "UserChangeEmailSendCodeReq", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.UserChangeEmailSendCodeReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/user/email/verification": { + "post": { + "description": "UserVerifyEmail", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "User" + ], + "summary": "UserVerifyEmail", + "parameters": [ + { + "type": "string", + "default": "", + "description": "code", + "name": "code", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.UserLoginResp" + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/user/email/verification/send": { + "post": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "UserVerifyEmailSend", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "User" + ], + "summary": "UserVerifyEmailSend", + "parameters": [ + { + "type": "string", + "default": "", + "description": "captcha_id", + "name": "captcha_id", + "in": "query" + }, + { + "type": "string", + "default": "", + "description": "captcha_code", + "name": "captcha_code", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + } + } + }, + "/answer/api/v1/user/info": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get user info, if user no login response http code is 200, but user info is null", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "User" + ], + "summary": "GetUserInfoByUserID", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.GetCurrentLoginUserInfoResp" + } + } + } + ] + } + } + } + }, + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "UserUpdateInfo update user info", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "User" + ], + "summary": "UserUpdateInfo update user info", + "parameters": [ + { + "type": "string", + "description": "access-token", + "name": "Authorization", + "in": "header", + "required": true + }, + { + "description": "UpdateInfoRequest", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.UpdateInfoRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/user/info/search": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "SearchUserListByName", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "User" + ], + "summary": "SearchUserListByName", + "parameters": [ + { + "type": "string", + "description": "username", + "name": "username", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.GetOtherUserInfoResp" + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/user/interface": { + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "UserUpdateInterface update user interface config", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "User" + ], + "summary": "UserUpdateInterface update user interface config", + "parameters": [ + { + "type": "string", + "description": "access-token", + "name": "Authorization", + "in": "header", + "required": true + }, + { + "description": "UpdateInfoRequest", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.UpdateUserInterfaceRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/user/login/email": { + "post": { + "description": "UserEmailLogin", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "User" + ], + "summary": "UserEmailLogin", + "parameters": [ + { + "description": "UserEmailLogin", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.UserEmailLoginReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.UserLoginResp" + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/user/logout": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "user logout", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "User" + ], + "summary": "user logout", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/user/notification/config": { + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update user's notification config", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "User" + ], + "summary": "update user's notification config", + "parameters": [ + { + "description": "UpdateUserNotificationConfigReq", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.UpdateUserNotificationConfigReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + }, + "post": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get user's notification config", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "User" + ], + "summary": "get user's notification config", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.GetUserNotificationConfigResp" + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/user/notification/unsubscribe": { + "put": { + "description": "unsubscribe notification", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "User" + ], + "summary": "unsubscribe notification", + "parameters": [ + { + "description": "UserUnsubscribeNotificationReq", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.UserUnsubscribeNotificationReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/user/password": { + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "UserModifyPassWord", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "User" + ], + "summary": "UserModifyPassWord", + "parameters": [ + { + "description": "UserModifyPasswordReq", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.UserModifyPasswordReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/user/password/replacement": { + "post": { + "description": "UseRePassWord", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "User" + ], + "summary": "UseRePassWord", + "parameters": [ + { + "description": "UserRePassWordRequest", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.UserRePassWordRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + } + } + }, + "/answer/api/v1/user/password/reset": { + "post": { + "description": "RetrievePassWord", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "User" + ], + "summary": "RetrievePassWord", + "parameters": [ + { + "description": "UserRetrievePassWordRequest", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.UserRetrievePassWordRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + } + } + }, + "/answer/api/v1/user/plugin/config": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get user plugin config", + "produces": [ + "application/json" + ], + "tags": [ + "UserPlugin" + ], + "summary": "get user plugin config", + "parameters": [ + { + "type": "string", + "description": "plugin_slug_name", + "name": "plugin_slug_name", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.GetPluginConfigResp" + } + } + } + ] + } + } + } + }, + "put": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "update user plugin config", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "UserPlugin" + ], + "summary": "update user plugin config", + "parameters": [ + { + "description": "UpdatePluginConfigReq", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.UpdateUserPluginConfigReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/answer/api/v1/user/plugin/configs": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "get plugin list that used for user.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "UserPlugin" + ], + "summary": "get plugin list that used for user.", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.GetUserPluginListResp" + } + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/user/ranking": { + "get": { + "description": "get user ranking", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "User" + ], + "summary": "get user ranking", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.UserRankingResp" + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/user/register/email": { + "post": { + "description": "UserRegisterByEmail", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "User" + ], + "summary": "UserRegisterByEmail", + "parameters": [ + { + "description": "UserRegisterReq", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.UserRegisterReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.UserLoginResp" + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/user/staff": { + "get": { + "description": "get user staff", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "User" + ], + "summary": "get user staff", + "parameters": [ + { + "type": "string", + "description": "username", + "name": "username", + "in": "query", + "required": true + }, + { + "type": "string", + "description": "page_size", + "name": "page_size", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.GetUserStaffResp" + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/vote/down": { + "post": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "add vote", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Activity" + ], + "summary": "vote down", + "parameters": [ + { + "description": "vote", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.VoteReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.VoteResp" + } + } + } + ] + } + } + } + } + }, + "/answer/api/v1/vote/up": { + "post": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "add vote", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Activity" + ], + "summary": "vote up", + "parameters": [ + { + "description": "vote", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/schema.VoteReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/schema.VoteResp" + } + } + } + ] + } + } + } + } + }, + "/custom.css": { + "get": { + "description": "get site custom CSS", + "produces": [ + "text/css" + ], + "tags": [ + "site" + ], + "summary": "get site custom CSS", + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + } + } + }, + "/installation/base-info": { + "post": { + "description": "init base info", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "installation" + ], + "summary": "init base info", + "parameters": [ + { + "description": "InitBaseInfoReq", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/install.InitBaseInfoReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/installation/config-file/check": { + "post": { + "description": "check config file if exist when installation", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "installation" + ], + "summary": "check config file if exist when installation", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/install.CheckConfigFileResp" + } + } + } + ] + } + } + } + } + }, + "/installation/db/check": { + "post": { + "description": "check database if exist when installation", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "installation" + ], + "summary": "check database if exist when installation", + "parameters": [ + { + "description": "CheckDatabaseReq", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/install.CheckDatabaseReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/install.CheckConfigFileResp" + } + } + } + ] + } + } + } + } + }, + "/installation/init": { + "post": { + "description": "init environment", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "installation" + ], + "summary": "init environment", + "parameters": [ + { + "description": "CheckDatabaseReq", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/install.CheckDatabaseReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/installation/language/config": { + "get": { + "description": "get installation language config mapping", + "produces": [ + "application/json" + ], + "tags": [ + "Lang" + ], + "summary": "get installation language config mapping", + "parameters": [ + { + "type": "string", + "description": "installation language", + "name": "lang", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/installation/language/options": { + "get": { + "description": "get installation language options", + "produces": [ + "application/json" + ], + "tags": [ + "Lang" + ], + "summary": "get installation language options", + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/handler.RespBody" + }, + { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/translator.LangOption" + } + } + } + } + ] + } + } + } + } + }, + "/personal/question/page": { + "get": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "list personal questions", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Personal" + ], + "summary": "list personal questions", + "parameters": [ + { + "type": "string", + "default": "string", + "description": "username", + "name": "username", + "in": "query", + "required": true + }, + { + "enum": [ + "newest", + "score" + ], + "type": "string", + "description": "order", + "name": "order", + "in": "query", + "required": true + }, + { + "type": "string", + "default": "0", + "description": "page", + "name": "page", + "in": "query", + "required": true + }, + { + "type": "string", + "default": "20", + "description": "page_size", + "name": "page_size", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.RespBody" + } + } + } + } + }, + "/robots.txt": { + "get": { + "description": "get site robots information", + "produces": [ + "application/json" + ], + "tags": [ + "site" + ], + "summary": "get site robots information", + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + } + } + } + }, + "definitions": { + "constant.NotificationChannelKey": { + "type": "string", + "enum": [ + "email" + ], + "x-enum-varnames": [ + "EmailChannel" + ] + }, + "constant.Privilege": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "label": { + "type": "string" + }, + "value": { + "type": "integer", + "minimum": 1 + } + } + }, + "entity.BadgeLevel": { + "type": "integer", + "enum": [ + 1, + 2, + 3 + ], + "x-enum-varnames": [ + "BadgeLevelBronze", + "BadgeLevelSilver", + "BadgeLevelGold" + ] + }, + "handler.RespBody": { + "type": "object", + "properties": { + "code": { + "description": "http code", + "type": "integer" + }, + "data": { + "description": "response data" + }, + "msg": { + "description": "response message", + "type": "string" + }, + "reason": { + "description": "reason key", + "type": "string" + } + } + }, + "install.CheckConfigFileResp": { + "type": "object", + "properties": { + "config_file_exist": { + "type": "boolean" + }, + "db_connection_success": { + "type": "boolean" + }, + "db_table_exist": { + "type": "boolean" + } + } + }, + "install.CheckDatabaseReq": { + "type": "object", + "required": [ + "db_type" + ], + "properties": { + "db_file": { + "type": "string" + }, + "db_host": { + "type": "string" + }, + "db_name": { + "type": "string" + }, + "db_password": { + "type": "string" + }, + "db_type": { + "type": "string", + "enum": [ + "postgres", + "sqlite3", + "mysql" + ] + }, + "db_username": { + "type": "string" + }, + "ssl_cert": { + "type": "string" + }, + "ssl_enabled": { + "type": "boolean" + }, + "ssl_key": { + "type": "string" + }, + "ssl_mode": { + "type": "string" + }, + "ssl_root_cert": { + "type": "string" + } + } + }, + "install.InitBaseInfoReq": { + "type": "object", + "required": [ + "contact_email", + "email", + "external_content_display", + "lang", + "name", + "password", + "site_name", + "site_url" + ], + "properties": { + "contact_email": { + "type": "string", + "maxLength": 500 + }, + "email": { + "type": "string", + "maxLength": 500 + }, + "external_content_display": { + "type": "string", + "enum": [ + "always_display", + "ask_before_display" + ] + }, + "lang": { + "type": "string", + "maxLength": 30 + }, + "login_required": { + "type": "boolean" + }, + "name": { + "type": "string", + "maxLength": 30, + "minLength": 2 + }, + "password": { + "type": "string", + "maxLength": 32, + "minLength": 8 + }, + "site_name": { + "type": "string", + "maxLength": 30 + }, + "site_url": { + "type": "string", + "maxLength": 512 + } + } + }, + "pager.PageModel": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "list": {} + } + }, + "plugin.EmbedConfig": { + "type": "object", + "properties": { + "enable": { + "type": "boolean" + }, + "platform": { + "type": "string" + } + } + }, + "plugin.RenderConfig": { + "type": "object", + "properties": { + "select_theme": { + "type": "string" + } + } + }, + "schema.AcceptAnswerReq": { + "type": "object", + "required": [ + "question_id" + ], + "properties": { + "answer_id": { + "type": "string" + }, + "question_id": { + "type": "string", + "maxLength": 30 + } + } + }, + "schema.ActObjectInfo": { + "type": "object", + "properties": { + "answer_id": { + "type": "string" + }, + "display_name": { + "type": "string" + }, + "main_tag_slug_name": { + "type": "string" + }, + "object_type": { + "type": "string" + }, + "question_id": { + "type": "string" + }, + "title": { + "type": "string" + }, + "username": { + "type": "string" + } + } + }, + "schema.ActObjectTimeline": { + "type": "object", + "properties": { + "activity_id": { + "type": "string" + }, + "activity_type": { + "type": "string" + }, + "cancelled": { + "type": "boolean" + }, + "cancelled_at": { + "type": "integer" + }, + "comment": { + "type": "string" + }, + "created_at": { + "type": "integer" + }, + "object_id": { + "type": "string" + }, + "object_type": { + "type": "string" + }, + "revision_id": { + "type": "string" + }, + "user_info": { + "$ref": "#/definitions/schema.UserBasicInfo" + } + } + }, + "schema.ActionRecordResp": { + "type": "object", + "properties": { + "captcha_id": { + "type": "string" + }, + "captcha_img": { + "type": "string" + }, + "verify": { + "type": "boolean" + } + } + }, + "schema.AddCommentReq": { + "type": "object", + "required": [ + "object_id", + "original_text" + ], + "properties": { + "captcha_code": { + "type": "string" + }, + "captcha_id": { + "type": "string" + }, + "mention_username_list": { + "description": "@ user id list", + "type": "array", + "items": { + "type": "string" + } + }, + "object_id": { + "description": "object id", + "type": "string" + }, + "original_text": { + "description": "original comment content", + "type": "string", + "maxLength": 600, + "minLength": 2 + }, + "reply_comment_id": { + "description": "reply comment id", + "type": "string" + } + } + }, + "schema.AddReportReq": { + "type": "object", + "required": [ + "object_id", + "report_type" + ], + "properties": { + "captcha_code": { + "type": "string" + }, + "captcha_id": { + "description": "captcha_id", + "type": "string" + }, + "content": { + "description": "report content", + "type": "string", + "maxLength": 500 + }, + "object_id": { + "description": "object id", + "type": "string", + "maxLength": 20 + }, + "report_type": { + "description": "report type", + "type": "integer" + } + } + }, + "schema.AddTagReq": { + "type": "object", + "required": [ + "display_name", + "original_text", + "slug_name" + ], + "properties": { + "display_name": { + "description": "display_name", + "type": "string", + "maxLength": 35 + }, + "original_text": { + "description": "original text", + "type": "string", + "maxLength": 65536 + }, + "slug_name": { + "description": "slug_name", + "type": "string", + "maxLength": 35 + } + } + }, + "schema.AddUserReq": { + "type": "object", + "required": [ + "display_name", + "email", + "password" + ], + "properties": { + "display_name": { + "type": "string", + "maxLength": 30, + "minLength": 2 + }, + "email": { + "type": "string", + "maxLength": 500 + }, + "password": { + "type": "string", + "maxLength": 32, + "minLength": 8 + } + } + }, + "schema.AddUsersReq": { + "type": "object", + "properties": { + "users": { + "description": "users info line by line", + "type": "string" + } + } + }, + "schema.AdminUpdateAnswerStatusReq": { + "type": "object", + "required": [ + "answer_id", + "status" + ], + "properties": { + "answer_id": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "available", + "deleted" + ] + } + } + }, + "schema.AdminUpdateQuestionStatusReq": { + "type": "object", + "required": [ + "question_id", + "status" + ], + "properties": { + "question_id": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "available", + "closed", + "deleted" + ] + } + } + }, + "schema.AnswerAddReq": { + "type": "object", + "required": [ + "content" + ], + "properties": { + "captcha_code": { + "type": "string" + }, + "captcha_id": { + "type": "string" + }, + "content": { + "type": "string", + "maxLength": 65535, + "minLength": 6 + }, + "question_id": { + "type": "string" + } + } + }, + "schema.AnswerUpdateReq": { + "type": "object", + "required": [ + "content" + ], + "properties": { + "captcha_code": { + "type": "string" + }, + "captcha_id": { + "type": "string" + }, + "content": { + "type": "string", + "maxLength": 65535, + "minLength": 6 + }, + "edit_summary": { + "type": "string" + }, + "id": { + "type": "string" + }, + "question_id": { + "type": "string" + }, + "title": { + "type": "string" + } + } + }, + "schema.AvatarInfo": { + "type": "object", + "properties": { + "custom": { + "type": "string", + "maxLength": 200 + }, + "gravatar": { + "type": "string", + "maxLength": 200 + }, + "type": { + "type": "string", + "maxLength": 100 + } + } + }, + "schema.BadgeListInfo": { + "type": "object", + "properties": { + "award_count": { + "description": "badge award count", + "type": "integer" + }, + "earned_count": { + "description": "badge earned count", + "type": "integer" + }, + "icon": { + "description": "badge icon", + "type": "string" + }, + "id": { + "description": "badge id", + "type": "string" + }, + "level": { + "description": "badge level", + "allOf": [ + { + "$ref": "#/definitions/entity.BadgeLevel" + } + ] + }, + "name": { + "description": "badge name", + "type": "string" + } + } + }, + "schema.BadgeStatus": { + "type": "string", + "enum": [ + "active", + "inactive" + ], + "x-enum-varnames": [ + "BadgeStatusActive", + "BadgeStatusInactive" + ] + }, + "schema.CloseQuestionReq": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "close_msg": { + "description": "close_type", + "type": "string" + }, + "close_type": { + "description": "close_type", + "type": "integer" + }, + "id": { + "type": "string" + } + } + }, + "schema.CollectionSwitchReq": { + "type": "object", + "required": [ + "group_id", + "object_id" + ], + "properties": { + "bookmark": { + "type": "boolean" + }, + "group_id": { + "type": "string" + }, + "object_id": { + "type": "string" + } + } + }, + "schema.CollectionSwitchResp": { + "type": "object", + "properties": { + "object_collection_count": { + "type": "integer" + } + } + }, + "schema.ConfigField": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.ConfigFieldOption" + } + }, + "required": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + }, + "ui_options": { + "$ref": "#/definitions/schema.ConfigFieldUIOptions" + }, + "value": {} + } + }, + "schema.ConfigFieldOption": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, + "schema.ConfigFieldUIOptions": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/schema.UIOptionAction" + }, + "class_name": { + "type": "string" + }, + "field_class_name": { + "type": "string" + }, + "input_type": { + "type": "string" + }, + "label": { + "type": "string" + }, + "placeholder": { + "type": "string" + }, + "rows": { + "type": "string" + }, + "text": { + "type": "string" + }, + "variant": { + "type": "string" + } + } + }, + "schema.ConnectorInfoResp": { + "type": "object", + "properties": { + "icon": { + "type": "string" + }, + "link": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "schema.ConnectorUserInfoResp": { + "type": "object", + "properties": { + "binding": { + "type": "boolean" + }, + "external_id": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "link": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "schema.DeletePermanentlyReq": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "users", + "questions", + "answers" + ] + } + } + }, + "schema.EditUserProfileReq": { + "type": "object", + "required": [ + "display_name", + "email", + "user_id" + ], + "properties": { + "display_name": { + "type": "string", + "maxLength": 30, + "minLength": 4 + }, + "email": { + "type": "string", + "maxLength": 500 + }, + "user_id": { + "type": "string" + }, + "username": { + "type": "string", + "maxLength": 30 + } + } + }, + "schema.ExternalLoginBindingUserSendEmailReq": { + "type": "object", + "required": [ + "binding_key", + "email" + ], + "properties": { + "binding_key": { + "type": "string", + "maxLength": 100 + }, + "email": { + "type": "string", + "maxLength": 512 + }, + "must": { + "description": "If must is true, whatever email if exists, try to bind user.\nIf must is false, when email exist, will only be prompted with a warning.", + "type": "boolean" + } + } + }, + "schema.ExternalLoginBindingUserSendEmailResp": { + "type": "object", + "properties": { + "access_token": { + "type": "string" + }, + "email_exist_and_must_be_confirmed": { + "type": "boolean" + } + } + }, + "schema.ExternalLoginUnbindingReq": { + "type": "object", + "required": [ + "external_id" + ], + "properties": { + "external_id": { + "type": "string", + "maxLength": 128 + } + } + }, + "schema.FollowReq": { + "type": "object", + "required": [ + "object_id" + ], + "properties": { + "is_cancel": { + "description": "is cancel", + "type": "boolean" + }, + "object_id": { + "description": "object id", + "type": "string" + } + } + }, + "schema.FollowResp": { + "type": "object", + "properties": { + "follows": { + "description": "the followers of object", + "type": "integer" + }, + "is_followed": { + "description": "if user is followed object will be true,otherwise false", + "type": "boolean" + } + } + }, + "schema.GetBadgeInfoResp": { + "type": "object", + "properties": { + "award_count": { + "description": "badge award count", + "type": "integer" + }, + "description": { + "description": "badge description", + "type": "string" + }, + "earned_count": { + "description": "badge earned count", + "type": "integer" + }, + "icon": { + "description": "badge icon", + "type": "string" + }, + "id": { + "description": "badge id", + "type": "string" + }, + "is_single": { + "description": "badge is single or multiple", + "type": "boolean" + }, + "level": { + "description": "badge level", + "allOf": [ + { + "$ref": "#/definitions/entity.BadgeLevel" + } + ] + }, + "name": { + "description": "badge name", + "type": "string" + } + } + }, + "schema.GetBadgeListPagedResp": { + "type": "object", + "properties": { + "award_count": { + "description": "badge award count", + "type": "integer" + }, + "description": { + "description": "badge description", + "type": "string" + }, + "earned": { + "description": "badge earned count", + "type": "boolean" + }, + "group_name": { + "description": "badge group name", + "type": "string" + }, + "icon": { + "description": "badge icon", + "type": "string" + }, + "id": { + "description": "badge id", + "type": "string" + }, + "level": { + "description": "badge level", + "allOf": [ + { + "$ref": "#/definitions/entity.BadgeLevel" + } + ] + }, + "name": { + "description": "badge name", + "type": "string" + }, + "status": { + "description": "badge status", + "allOf": [ + { + "$ref": "#/definitions/schema.BadgeStatus" + } + ] + } + } + }, + "schema.GetBadgeListResp": { + "type": "object", + "properties": { + "badges": { + "description": "badge list info", + "type": "array", + "items": { + "$ref": "#/definitions/schema.BadgeListInfo" + } + }, + "group_name": { + "description": "badge group name", + "type": "string" + } + } + }, + "schema.GetCommentPersonalWithPageResp": { + "type": "object", + "properties": { + "answer_id": { + "description": "answer id", + "type": "string" + }, + "comment_id": { + "description": "comment id", + "type": "string" + }, + "content": { + "description": "content", + "type": "string" + }, + "created_at": { + "description": "create time", + "type": "integer" + }, + "object_id": { + "description": "object id", + "type": "string" + }, + "object_type": { + "description": "object type", + "type": "string", + "enum": [ + "question", + "answer", + "tag", + "comment" + ] + }, + "question_id": { + "description": "question id", + "type": "string" + }, + "title": { + "description": "title", + "type": "string" + }, + "url_title": { + "description": "url title", + "type": "string" + } + } + }, + "schema.GetCommentResp": { + "type": "object", + "properties": { + "comment_id": { + "description": "comment id", + "type": "string" + }, + "created_at": { + "description": "create time", + "type": "integer" + }, + "is_vote": { + "description": "current user if already vote this comment", + "type": "boolean" + }, + "member_actions": { + "description": "MemberActions", + "type": "array", + "items": { + "$ref": "#/definitions/schema.PermissionMemberAction" + } + }, + "object_id": { + "description": "object id", + "type": "string" + }, + "original_text": { + "description": "original comment content", + "type": "string" + }, + "parsed_text": { + "description": "parsed comment content", + "type": "string" + }, + "reply_comment_id": { + "description": "reply comment id", + "type": "string" + }, + "reply_user_display_name": { + "description": "reply user display name", + "type": "string" + }, + "reply_user_id": { + "description": "reply user id", + "type": "string" + }, + "reply_user_status": { + "description": "reply user status", + "type": "string" + }, + "reply_username": { + "description": "reply user username", + "type": "string" + }, + "user_avatar": { + "description": "user avatar", + "type": "string" + }, + "user_display_name": { + "description": "user display name", + "type": "string" + }, + "user_id": { + "description": "user id", + "type": "string" + }, + "user_status": { + "description": "user status", + "type": "string" + }, + "username": { + "description": "username", + "type": "string" + }, + "vote_count": { + "description": "user vote amount", + "type": "integer" + } + } + }, + "schema.GetCurrentLoginUserInfoResp": { + "type": "object", + "properties": { + "access_token": { + "description": "access token", + "type": "string" + }, + "answer_count": { + "description": "answer count", + "type": "integer" + }, + "authority_group": { + "description": "authority group", + "type": "integer" + }, + "avatar": { + "$ref": "#/definitions/schema.AvatarInfo" + }, + "bio": { + "description": "bio markdown", + "type": "string" + }, + "bio_html": { + "description": "bio html", + "type": "string" + }, + "color_scheme": { + "description": "Color scheme", + "type": "string" + }, + "created_at": { + "description": "create time", + "type": "integer" + }, + "display_name": { + "description": "display name", + "type": "string" + }, + "e_mail": { + "description": "email", + "type": "string" + }, + "follow_count": { + "description": "follow count", + "type": "integer" + }, + "have_password": { + "description": "user have password", + "type": "boolean" + }, + "id": { + "description": "user id", + "type": "string" + }, + "language": { + "description": "language", + "type": "string" + }, + "last_login_date": { + "description": "last login date", + "type": "integer" + }, + "location": { + "description": "location", + "type": "string" + }, + "mail_status": { + "description": "mail status(1 pass 2 to be verified)", + "type": "integer" + }, + "mobile": { + "description": "mobile", + "type": "string" + }, + "notice_status": { + "description": "notice status(1 on 2off)", + "type": "integer" + }, + "question_count": { + "description": "question count", + "type": "integer" + }, + "rank": { + "description": "rank", + "type": "integer" + }, + "role_id": { + "description": "role id", + "type": "integer" + }, + "status": { + "description": "user status", + "type": "string" + }, + "username": { + "description": "username", + "type": "string" + }, + "visit_token": { + "description": "visit token", + "type": "string" + }, + "website": { + "description": "website", + "type": "string" + } + } + }, + "schema.GetFollowingTagsResp": { + "type": "object", + "properties": { + "display_name": { + "description": "display name", + "type": "string" + }, + "main_tag_slug_name": { + "description": "if main tag slug name is not empty, this tag is synonymous with the main tag", + "type": "string" + }, + "recommend": { + "type": "boolean" + }, + "reserved": { + "type": "boolean" + }, + "slug_name": { + "description": "slug name", + "type": "string" + }, + "tag_id": { + "description": "tag id", + "type": "string" + } + } + }, + "schema.GetObjectTimelineResp": { + "type": "object", + "properties": { + "object_info": { + "$ref": "#/definitions/schema.ActObjectInfo" + }, + "timeline": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.ActObjectTimeline" + } + } + } + }, + "schema.GetOtherUserInfoByUsernameResp": { + "type": "object", + "properties": { + "answer_count": { + "description": "answer count", + "type": "integer" + }, + "avatar": { + "description": "avatar", + "type": "string" + }, + "bio": { + "description": "bio markdown", + "type": "string" + }, + "bio_html": { + "description": "bio html", + "type": "string" + }, + "created_at": { + "description": "create time", + "type": "integer" + }, + "display_name": { + "description": "display name", + "type": "string" + }, + "follow_count": { + "description": "email\nfollow count", + "type": "integer" + }, + "id": { + "description": "user id", + "type": "string" + }, + "last_login_date": { + "description": "last login date", + "type": "integer" + }, + "location": { + "description": "location", + "type": "string" + }, + "mobile": { + "description": "mobile", + "type": "string" + }, + "question_count": { + "description": "question count", + "type": "integer" + }, + "rank": { + "description": "rank", + "type": "integer" + }, + "status": { + "type": "string" + }, + "status_msg": { + "type": "string" + }, + "username": { + "description": "username", + "type": "string" + }, + "website": { + "description": "website", + "type": "string" + } + } + }, + "schema.GetOtherUserInfoResp": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/schema.GetOtherUserInfoByUsernameResp" + } + } + }, + "schema.GetPluginConfigResp": { + "type": "object", + "properties": { + "config_fields": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.ConfigField" + } + }, + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "slug_name": { + "type": "string" + }, + "version": { + "type": "string" + } + } + }, + "schema.GetPluginListResp": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "have_config": { + "type": "boolean" + }, + "link": { + "type": "string" + }, + "name": { + "type": "string" + }, + "slug_name": { + "type": "string" + }, + "version": { + "type": "string" + } + } + }, + "schema.GetPrivilegesConfigResp": { + "type": "object", + "properties": { + "options": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.PrivilegeOption" + } + }, + "selected_level": { + "$ref": "#/definitions/schema.PrivilegeLevel" + } + } + }, + "schema.GetRankPersonalPageResp": { + "type": "object", + "properties": { + "answer_id": { + "description": "answer id", + "type": "string" + }, + "content": { + "description": "content", + "type": "string" + }, + "created_at": { + "description": "create time", + "type": "integer" + }, + "object_id": { + "description": "object id", + "type": "string" + }, + "object_type": { + "description": "object type", + "type": "string", + "enum": [ + "question", + "answer", + "tag", + "comment" + ] + }, + "question_id": { + "description": "question id", + "type": "string" + }, + "rank_type": { + "description": "rank type", + "type": "string" + }, + "reputation": { + "description": "reputation", + "type": "integer" + }, + "title": { + "description": "title", + "type": "string" + }, + "url_title": { + "description": "url title", + "type": "string" + } + } + }, + "schema.GetReportListPageResp": { + "type": "object", + "properties": { + "answer_accepted": { + "type": "boolean" + }, + "answer_count": { + "type": "integer" + }, + "answer_id": { + "type": "string" + }, + "author_user_info": { + "$ref": "#/definitions/schema.UserBasicInfo" + }, + "comment_id": { + "type": "string" + }, + "created_at": { + "type": "integer" + }, + "flag_id": { + "type": "string" + }, + "object_id": { + "type": "string" + }, + "object_show_status": { + "type": "integer" + }, + "object_status": { + "type": "integer" + }, + "object_type": { + "type": "string", + "enum": [ + "question", + "answer", + "comment" + ] + }, + "original_text": { + "type": "string" + }, + "parsed_text": { + "type": "string" + }, + "question_id": { + "type": "string" + }, + "reason": { + "$ref": "#/definitions/schema.ReasonItem" + }, + "reason_content": { + "type": "string" + }, + "submit_at": { + "type": "integer" + }, + "submitter_user": { + "$ref": "#/definitions/schema.UserBasicInfo" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.TagResp" + } + }, + "title": { + "type": "string" + }, + "url_title": { + "type": "string" + } + } + }, + "schema.GetReviewingTypeResp": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "name": { + "type": "string" + }, + "todo_amount": { + "type": "integer" + } + } + }, + "schema.GetRevisionResp": { + "type": "object", + "properties": { + "content": {}, + "create_at": { + "type": "integer" + }, + "id": { + "type": "string" + }, + "object_id": { + "type": "string" + }, + "reason": { + "type": "string" + }, + "status": { + "type": "integer" + }, + "title": { + "type": "string" + }, + "url_title": { + "type": "string" + }, + "use_id": { + "type": "string" + }, + "user_info": { + "$ref": "#/definitions/schema.UserBasicInfo" + } + } + }, + "schema.GetRoleResp": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + } + } + }, + "schema.GetSMTPConfigResp": { + "type": "object", + "properties": { + "encryption": { + "description": "\"\" SSL TLS", + "type": "string" + }, + "from_email": { + "type": "string" + }, + "from_name": { + "type": "string" + }, + "smtp_authentication": { + "type": "boolean" + }, + "smtp_host": { + "type": "string" + }, + "smtp_password": { + "type": "string" + }, + "smtp_port": { + "type": "integer" + }, + "smtp_username": { + "type": "string" + } + } + }, + "schema.GetSiteLegalInfoResp": { + "type": "object", + "properties": { + "privacy_policy_original_text": { + "type": "string" + }, + "privacy_policy_parsed_text": { + "type": "string" + }, + "terms_of_service_original_text": { + "type": "string" + }, + "terms_of_service_parsed_text": { + "type": "string" + } + } + }, + "schema.GetTagBasicResp": { + "type": "object", + "properties": { + "display_name": { + "type": "string" + }, + "recommend": { + "type": "boolean" + }, + "reserved": { + "type": "boolean" + }, + "slug_name": { + "type": "string" + } + } + }, + "schema.GetTagPageResp": { + "type": "object", + "properties": { + "created_at": { + "description": "created time", + "type": "integer" + }, + "description": { + "description": "description", + "type": "string" + }, + "display_name": { + "description": "display_name", + "type": "string" + }, + "excerpt": { + "description": "excerpt", + "type": "string" + }, + "follow_count": { + "description": "follower amount", + "type": "integer" + }, + "is_follower": { + "description": "is follower", + "type": "boolean" + }, + "original_text": { + "description": "original text", + "type": "string" + }, + "parsed_text": { + "description": "parsed_text", + "type": "string" + }, + "question_count": { + "description": "question amount", + "type": "integer" + }, + "recommend": { + "type": "boolean" + }, + "reserved": { + "type": "boolean" + }, + "slug_name": { + "description": "slug_name", + "type": "string" + }, + "tag_id": { + "description": "tag_id", + "type": "string" + }, + "updated_at": { + "description": "updated time", + "type": "integer" + } + } + }, + "schema.GetTagResp": { + "type": "object", + "properties": { + "created_at": { + "type": "integer" + }, + "description": { + "type": "string" + }, + "display_name": { + "type": "string" + }, + "excerpt": { + "type": "string" + }, + "follow_count": { + "type": "integer" + }, + "is_follower": { + "type": "boolean" + }, + "main_tag_slug_name": { + "description": "if main tag slug name is not empty, this tag is synonymous with the main tag", + "type": "string" + }, + "member_actions": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.PermissionMemberAction" + } + }, + "original_text": { + "type": "string" + }, + "parsed_text": { + "type": "string" + }, + "question_count": { + "type": "integer" + }, + "recommend": { + "type": "boolean" + }, + "reserved": { + "type": "boolean" + }, + "slug_name": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag_id": { + "type": "string" + }, + "updated_at": { + "type": "integer" + } + } + }, + "schema.GetTagSynonymsResp": { + "type": "object", + "properties": { + "member_actions": { + "description": "MemberActions", + "type": "array", + "items": { + "$ref": "#/definitions/schema.PermissionMemberAction" + } + }, + "synonyms": { + "description": "synonyms", + "type": "array", + "items": { + "$ref": "#/definitions/schema.TagSynonym" + } + } + } + }, + "schema.GetUnreviewedPostPageResp": { + "type": "object", + "properties": { + "answer_id": { + "type": "string" + }, + "author_user_info": { + "$ref": "#/definitions/schema.UserBasicInfo" + }, + "comment_id": { + "type": "string" + }, + "created_at": { + "type": "integer" + }, + "object_id": { + "type": "string" + }, + "object_show_status": { + "type": "integer" + }, + "object_status": { + "type": "integer" + }, + "object_type": { + "type": "string", + "enum": [ + "question", + "answer", + "comment" + ] + }, + "original_text": { + "type": "string" + }, + "parsed_text": { + "type": "string" + }, + "question_id": { + "type": "string" + }, + "reason": { + "type": "string" + }, + "review_id": { + "type": "integer" + }, + "submit_at": { + "type": "integer" + }, + "submitter_display_name": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.TagResp" + } + }, + "title": { + "type": "string" + }, + "url_title": { + "type": "string" + } + } + }, + "schema.GetUnreviewedRevisionResp": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/schema.UnreviewedRevisionInfoInfo" + }, + "type": { + "type": "string" + }, + "unreviewed_info": { + "$ref": "#/definitions/schema.GetRevisionResp" + } + } + }, + "schema.GetUserActivationResp": { + "type": "object", + "properties": { + "activation_url": { + "type": "string" + } + } + }, + "schema.GetUserBadgeAwardListResp": { + "type": "object", + "properties": { + "earned_count": { + "description": "badge award count", + "type": "integer" + }, + "icon": { + "description": "badge icon", + "type": "string" + }, + "id": { + "description": "badge id", + "type": "string" + }, + "level": { + "description": "badge level", + "allOf": [ + { + "$ref": "#/definitions/entity.BadgeLevel" + } + ] + }, + "name": { + "description": "badge name", + "type": "string" + } + } + }, + "schema.GetUserNotificationConfigResp": { + "type": "object", + "properties": { + "all_new_question": { + "$ref": "#/definitions/schema.NotificationChannelConfig" + }, + "all_new_question_for_following_tags": { + "$ref": "#/definitions/schema.NotificationChannelConfig" + }, + "inbox": { + "$ref": "#/definitions/schema.NotificationChannelConfig" + } + } + }, + "schema.GetUserPageResp": { + "type": "object", + "properties": { + "avatar": { + "description": "avatar", + "type": "string" + }, + "created_at": { + "description": "create time", + "type": "integer" + }, + "deleted_at": { + "description": "delete time", + "type": "integer" + }, + "display_name": { + "description": "display name", + "type": "string" + }, + "e_mail": { + "description": "email", + "type": "string" + }, + "rank": { + "description": "rank", + "type": "integer" + }, + "role_id": { + "description": "role id", + "type": "integer" + }, + "role_name": { + "description": "role name", + "type": "string" + }, + "status": { + "description": "user status(normal,suspended,deleted,inactive)", + "type": "string" + }, + "suspended_at": { + "description": "suspended time", + "type": "integer" + }, + "user_id": { + "description": "user id", + "type": "string" + }, + "username": { + "description": "username", + "type": "string" + } + } + }, + "schema.GetUserPluginListResp": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "slug_name": { + "type": "string" + } + } + }, + "schema.GetUserStaffResp": { + "type": "object", + "properties": { + "avatar": { + "description": "avatar", + "type": "string" + }, + "display_name": { + "description": "display name", + "type": "string" + }, + "username": { + "description": "username", + "type": "string" + } + } + }, + "schema.GetVoteWithPageResp": { + "type": "object", + "properties": { + "answer_id": { + "description": "answer id", + "type": "string" + }, + "content": { + "description": "content", + "type": "string" + }, + "created_at": { + "description": "create time", + "type": "integer" + }, + "object_id": { + "description": "object id", + "type": "string" + }, + "object_type": { + "description": "object type", + "type": "string", + "enum": [ + "question", + "answer", + "tag", + "comment" + ] + }, + "question_id": { + "description": "question id", + "type": "string" + }, + "title": { + "description": "title", + "type": "string" + }, + "url_title": { + "description": "url title", + "type": "string" + }, + "vote_type": { + "description": "vote type", + "type": "string" + } + } + }, + "schema.LoadingAction": { + "type": "object", + "properties": { + "state": { + "type": "string" + }, + "text": { + "type": "string" + } + } + }, + "schema.NotificationChannelConfig": { + "type": "object", + "properties": { + "enable": { + "type": "boolean" + }, + "key": { + "$ref": "#/definitions/constant.NotificationChannelKey" + } + } + }, + "schema.NotificationClearIDRequest": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + }, + "schema.NotificationClearRequest": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "inbox", + "achievement" + ] + } + } + }, + "schema.OnCompleteAction": { + "type": "object", + "properties": { + "refresh_form_config": { + "type": "boolean" + }, + "toast_return_message": { + "type": "boolean" + } + } + }, + "schema.OperationQuestionReq": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "type": "string" + }, + "operation": { + "description": "operation [pin unpin hide show]", + "type": "string" + } + } + }, + "schema.PermissionMemberAction": { + "type": "object", + "properties": { + "action": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + } + }, + "schema.PostRenderReq": { + "type": "object", + "properties": { + "content": { + "type": "string" + } + } + }, + "schema.PrivilegeLevel": { + "type": "integer", + "enum": [ + 1, + 2, + 3, + 99 + ], + "x-enum-varnames": [ + "PrivilegeLevel1", + "PrivilegeLevel2", + "PrivilegeLevel3", + "PrivilegeLevelCustom" + ] + }, + "schema.PrivilegeOption": { + "type": "object", + "properties": { + "level": { + "$ref": "#/definitions/schema.PrivilegeLevel" + }, + "level_desc": { + "type": "string" + }, + "privileges": { + "type": "array", + "items": { + "$ref": "#/definitions/constant.Privilege" + } + } + } + }, + "schema.QuestionAdd": { + "type": "object", + "required": [ + "content", + "tags", + "title" + ], + "properties": { + "captcha_code": { + "type": "string" + }, + "captcha_id": { + "description": "captcha_id", + "type": "string" + }, + "content": { + "description": "content", + "type": "string", + "maxLength": 65535, + "minLength": 6 + }, + "tags": { + "description": "tags", + "type": "array", + "items": { + "$ref": "#/definitions/schema.TagItem" + } + }, + "title": { + "description": "question title", + "type": "string", + "maxLength": 150, + "minLength": 6 + } + } + }, + "schema.QuestionAddByAnswer": { + "type": "object", + "required": [ + "answer_content", + "content", + "tags", + "title" + ], + "properties": { + "answer_content": { + "type": "string", + "maxLength": 65535, + "minLength": 6 + }, + "captcha_code": { + "type": "string" + }, + "captcha_id": { + "description": "captcha_id", + "type": "string" + }, + "content": { + "description": "content", + "type": "string", + "maxLength": 65535, + "minLength": 6 + }, + "mention_username_list": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "description": "tags", + "type": "array", + "items": { + "$ref": "#/definitions/schema.TagItem" + } + }, + "title": { + "description": "question title", + "type": "string", + "maxLength": 150, + "minLength": 6 + } + } + }, + "schema.QuestionPageReq": { + "type": "object", + "properties": { + "in_days": { + "type": "integer", + "minimum": 1 + }, + "order": { + "type": "string", + "enum": [ + "newest", + "active", + "hot", + "score", + "unanswered", + "recommend", + "frequent" + ] + }, + "page": { + "type": "integer", + "minimum": 1 + }, + "page_size": { + "type": "integer", + "minimum": 1 + }, + "tag": { + "type": "string", + "maxLength": 100 + }, + "username": { + "type": "string", + "maxLength": 100 + } + } + }, + "schema.QuestionPageResp": { + "type": "object", + "properties": { + "accepted_answer_id": { + "description": "answer information", + "type": "string" + }, + "answer_count": { + "type": "integer" + }, + "collection_count": { + "type": "integer" + }, + "created_at": { + "type": "integer" + }, + "description": { + "type": "string" + }, + "follow_count": { + "type": "integer" + }, + "id": { + "type": "string" + }, + "last_answer_id": { + "type": "string" + }, + "operated_at": { + "description": "operator information", + "type": "integer" + }, + "operation_type": { + "type": "string" + }, + "operator": { + "$ref": "#/definitions/schema.QuestionPageRespOperator" + }, + "pin": { + "description": "1: unpin, 2: pin", + "type": "integer" + }, + "show": { + "description": "0: show, 1: hide", + "type": "integer" + }, + "status": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.TagResp" + } + }, + "title": { + "type": "string" + }, + "unique_view_count": { + "type": "integer" + }, + "url_title": { + "type": "string" + }, + "view_count": { + "description": "question statistical information", + "type": "integer" + }, + "vote_count": { + "type": "integer" + } + } + }, + "schema.QuestionPageRespOperator": { + "type": "object", + "properties": { + "avatar": { + "type": "string" + }, + "display_name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "rank": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "username": { + "type": "string" + } + } + }, + "schema.QuestionRecoverReq": { + "type": "object", + "required": [ + "question_id" + ], + "properties": { + "question_id": { + "type": "string" + } + } + }, + "schema.QuestionUpdate": { + "type": "object", + "required": [ + "content", + "id", + "tags", + "title" + ], + "properties": { + "captcha_code": { + "type": "string" + }, + "captcha_id": { + "description": "captcha_id", + "type": "string" + }, + "content": { + "description": "content", + "type": "string", + "maxLength": 65535, + "minLength": 6 + }, + "edit_summary": { + "description": "edit summary", + "type": "string" + }, + "id": { + "description": "question id", + "type": "string" + }, + "invite_user": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "description": "tags", + "type": "array", + "items": { + "$ref": "#/definitions/schema.TagItem" + } + }, + "title": { + "description": "question title", + "type": "string", + "maxLength": 150, + "minLength": 6 + } + } + }, + "schema.QuestionUpdateInviteUser": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "captcha_code": { + "type": "string" + }, + "captcha_id": { + "description": "captcha_id", + "type": "string" + }, + "id": { + "type": "string" + }, + "invite_user": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "schema.ReactionRespItem": { + "type": "object", + "properties": { + "count": { + "description": "Count is the number of users who reacted", + "type": "integer" + }, + "emoji": { + "description": "Emoji is the reaction emoji", + "type": "string" + }, + "is_active": { + "description": "IsActive is if current user has reacted", + "type": "boolean" + }, + "tooltip": { + "description": "Tooltip is the user's name who reacted", + "type": "string" + } + } + }, + "schema.ReasonItem": { + "type": "object", + "properties": { + "content_type": { + "type": "string" + }, + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "placeholder": { + "type": "string" + }, + "reason_key": { + "type": "string" + }, + "reason_type": { + "type": "integer" + } + } + }, + "schema.RecoverAnswerReq": { + "type": "object", + "required": [ + "answer_id" + ], + "properties": { + "answer_id": { + "type": "string" + } + } + }, + "schema.RecoverTagReq": { + "type": "object", + "required": [ + "tag_id" + ], + "properties": { + "tag_id": { + "type": "string" + } + } + }, + "schema.RemoveAnswerReq": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "captcha_code": { + "type": "string" + }, + "captcha_id": { + "type": "string" + }, + "id": { + "type": "string" + } + } + }, + "schema.RemoveCommentReq": { + "type": "object", + "required": [ + "comment_id" + ], + "properties": { + "captcha_code": { + "type": "string" + }, + "captcha_id": { + "type": "string" + }, + "comment_id": { + "description": "comment id", + "type": "string" + } + } + }, + "schema.RemoveQuestionReq": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "captcha_code": { + "type": "string" + }, + "captcha_id": { + "description": "captcha_id", + "type": "string" + }, + "id": { + "description": "question id", + "type": "string" + } + } + }, + "schema.RemoveTagReq": { + "type": "object", + "required": [ + "tag_id" + ], + "properties": { + "tag_id": { + "description": "tag_id", + "type": "string" + } + } + }, + "schema.ReopenQuestionReq": { + "type": "object", + "properties": { + "question_id": { + "type": "string" + } + } + }, + "schema.ReviewReportReq": { + "type": "object", + "required": [ + "flag_id", + "operation_type" + ], + "properties": { + "close_msg": { + "type": "string" + }, + "close_type": { + "type": "integer" + }, + "content": { + "type": "string", + "maxLength": 65535, + "minLength": 6 + }, + "flag_id": { + "type": "string" + }, + "operation_type": { + "type": "string", + "enum": [ + "edit_post", + "close_post", + "delete_post", + "unlist_post", + "ignore_report" + ] + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.TagItem" + } + }, + "title": { + "type": "string", + "maxLength": 150, + "minLength": 6 + } + } + }, + "schema.RevisionAuditReq": { + "type": "object", + "required": [ + "id", + "operation" + ], + "properties": { + "id": { + "description": "object id", + "type": "string" + }, + "operation": { + "description": "approve or reject", + "type": "string" + } + } + }, + "schema.SearchObject": { + "type": "object", + "properties": { + "accepted": { + "type": "boolean" + }, + "answer_count": { + "type": "integer" + }, + "created_at": { + "type": "integer" + }, + "excerpt": { + "type": "string" + }, + "id": { + "type": "string" + }, + "question_id": { + "type": "string" + }, + "status": { + "description": "Status", + "type": "string" + }, + "tags": { + "description": "tags", + "type": "array", + "items": { + "$ref": "#/definitions/schema.TagResp" + } + }, + "title": { + "type": "string" + }, + "url_title": { + "type": "string" + }, + "user_info": { + "description": "user info", + "allOf": [ + { + "$ref": "#/definitions/schema.SearchObjectUser" + } + ] + }, + "vote_count": { + "type": "integer" + } + } + }, + "schema.SearchObjectUser": { + "type": "object", + "properties": { + "display_name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "rank": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "username": { + "type": "string" + } + } + }, + "schema.SearchResp": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "list": { + "description": "search response", + "type": "array", + "items": { + "$ref": "#/definitions/schema.SearchResult" + } + } + } + }, + "schema.SearchResult": { + "type": "object", + "properties": { + "object": { + "description": "this object", + "allOf": [ + { + "$ref": "#/definitions/schema.SearchObject" + } + ] + }, + "object_type": { + "description": "object_type", + "type": "string" + } + } + }, + "schema.SendUserActivationReq": { + "type": "object", + "required": [ + "user_id" + ], + "properties": { + "user_id": { + "type": "string" + } + } + }, + "schema.SiteBrandingReq": { + "type": "object", + "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", + "properties": { + "favicon": { + "type": "string", + "maxLength": 512 + }, + "logo": { + "type": "string", + "maxLength": 512 + }, + "mobile_logo": { + "type": "string", + "maxLength": 512 + }, + "square_icon": { + "type": "string", + "maxLength": 512 + } + } + }, + "schema.SiteCustomCssHTMLReq": { + "type": "object", + "properties": { + "custom_css": { + "type": "string", + "maxLength": 65536 + }, + "custom_footer": { + "type": "string", + "maxLength": 65536 + }, + "custom_head": { + "type": "string", + "maxLength": 65536 + }, + "custom_header": { + "type": "string", + "maxLength": 65536 + }, + "custom_sidebar": { + "type": "string", + "maxLength": 65536 + } + } + }, + "schema.SiteCustomCssHTMLResp": { + "type": "object", + "properties": { + "custom_css": { + "type": "string", + "maxLength": 65536 + }, + "custom_footer": { + "type": "string", + "maxLength": 65536 + }, + "custom_head": { + "type": "string", + "maxLength": 65536 + }, + "custom_header": { + "type": "string", + "maxLength": 65536 + }, + "custom_sidebar": { + "type": "string", + "maxLength": 65536 + } + } + }, + "schema.SiteGeneralReq": { + "type": "object", + "required": [ + "contact_email", + "name", + "site_url" + ], + "properties": { + "check_update": { + "type": "boolean" + }, + "contact_email": { + "type": "string", + "maxLength": 512 + }, + "description": { + "type": "string", + "maxLength": 2000 + }, + "name": { + "type": "string", + "maxLength": 128 + }, + "short_description": { + "type": "string", + "maxLength": 255 + }, + "site_url": { + "type": "string", + "maxLength": 512 + } + } + }, + "schema.SiteGeneralResp": { + "type": "object", + "required": [ + "contact_email", + "name", + "site_url" + ], + "properties": { + "check_update": { + "type": "boolean" + }, + "contact_email": { + "type": "string", + "maxLength": 512 + }, + "description": { + "type": "string", + "maxLength": 2000 + }, + "name": { + "type": "string", + "maxLength": 128 + }, + "short_description": { + "type": "string", + "maxLength": 255 + }, + "site_url": { + "type": "string", + "maxLength": 512 + } + } + }, + "schema.SiteInfoResp": { + "type": "object", + "properties": { + "branding": { + "$ref": "#/definitions/schema.SiteBrandingResp" + }, + "custom_css_html": { + "$ref": "#/definitions/schema.SiteCustomCssHTMLResp" + }, + "general": { + "$ref": "#/definitions/schema.SiteGeneralResp" + }, + "interface": { + "$ref": "#/definitions/schema.SiteInterfaceResp" + }, + "login": { + "$ref": "#/definitions/schema.SiteLoginResp" + }, + "revision": { + "type": "string" + }, + "site_legal": { + "$ref": "#/definitions/schema.SiteLegalSimpleResp" + }, + "site_seo": { + "$ref": "#/definitions/schema.SiteSeoResp" + }, + "site_users": { + "$ref": "#/definitions/schema.SiteUsersResp" + }, + "site_write": { + "$ref": "#/definitions/schema.SiteWriteResp" + }, + "theme": { + "$ref": "#/definitions/schema.SiteThemeResp" + }, + "version": { + "type": "string" + } + } + }, + "schema.SiteInterfaceReq": { + "type": "object", + "required": [ + "language", + "time_zone" + ], + "properties": { + "language": { + "type": "string", + "maxLength": 128 + }, + "time_zone": { + "type": "string", + "maxLength": 128 + } + } + }, + "schema.SiteInterfaceResp": { + "type": "object", + "required": [ + "language", + "time_zone" + ], + "properties": { + "language": { + "type": "string", + "maxLength": 128 + }, + "time_zone": { + "type": "string", + "maxLength": 128 + } + } + }, + "schema.SiteLegalReq": { + "type": "object", + "required": [ + "external_content_display" + ], + "properties": { + "external_content_display": { + "type": "string", + "enum": [ + "always_display", + "ask_before_display" + ] + }, + "privacy_policy_original_text": { + "type": "string" + }, + "privacy_policy_parsed_text": { + "type": "string" + }, + "terms_of_service_original_text": { + "type": "string" + }, + "terms_of_service_parsed_text": { + "type": "string" + } + } + }, + "schema.SiteLegalResp": { + "type": "object", + "required": [ + "external_content_display" + ], + "properties": { + "external_content_display": { + "type": "string", + "enum": [ + "always_display", + "ask_before_display" + ] + }, + "privacy_policy_original_text": { + "type": "string" + }, + "privacy_policy_parsed_text": { + "type": "string" + }, + "terms_of_service_original_text": { + "type": "string" + }, + "terms_of_service_parsed_text": { + "type": "string" + } + } + }, + "schema.SiteLegalSimpleResp": { + "type": "object", + "required": [ + "external_content_display" + ], + "properties": { + "external_content_display": { + "type": "string", + "enum": [ + "always_display", + "ask_before_display" + ] + } + } + }, + "schema.SiteLoginReq": { + "type": "object", + "properties": { + "allow_email_domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "allow_email_registrations": { + "type": "boolean" + }, + "allow_new_registrations": { + "type": "boolean" + }, + "allow_password_login": { + "type": "boolean" + }, + "login_required": { + "type": "boolean" + } + } + }, + "schema.SiteLoginResp": { + "type": "object", + "properties": { + "allow_email_domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "allow_email_registrations": { + "type": "boolean" + }, + "allow_new_registrations": { + "type": "boolean" + }, + "allow_password_login": { + "type": "boolean" + }, + "login_required": { + "type": "boolean" + } + } + }, + "schema.SiteSeoReq": { + "type": "object", + "required": [ + "permalink", + "robots" + ], + "properties": { + "permalink": { + "type": "integer", + "maximum": 4, + "minimum": 0 + }, + "robots": { + "type": "string" + } + } + }, + "schema.SiteSeoResp": { + "type": "object", + "required": [ + "permalink", + "robots" + ], + "properties": { + "permalink": { + "type": "integer", + "maximum": 4, + "minimum": 0 + }, + "robots": { + "type": "string" + } + } + }, + "schema.SiteThemeReq": { + "type": "object", + "required": [ + "theme" + ], + "properties": { + "color_scheme": { + "type": "string", + "maxLength": 100 + }, + "theme": { + "type": "string", + "maxLength": 255 + }, + "theme_config": { + "type": "object", + "additionalProperties": true + } + } + }, + "schema.SiteThemeResp": { + "type": "object", + "properties": { + "color_scheme": { + "type": "string" + }, + "theme": { + "type": "string" + }, + "theme_config": { + "type": "object", + "additionalProperties": true + }, + "theme_options": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.ThemeOption" + } + } + } + }, + "schema.SiteUsersReq": { + "type": "object", + "required": [ + "default_avatar" + ], + "properties": { + "allow_update_avatar": { + "type": "boolean" + }, + "allow_update_bio": { + "type": "boolean" + }, + "allow_update_display_name": { + "type": "boolean" + }, + "allow_update_location": { + "type": "boolean" + }, + "allow_update_username": { + "type": "boolean" + }, + "allow_update_website": { + "type": "boolean" + }, + "default_avatar": { + "type": "string", + "enum": [ + "system", + "gravatar" + ] + }, + "gravatar_base_url": { + "type": "string" + } + } + }, + "schema.SiteUsersResp": { + "type": "object", + "required": [ + "default_avatar" + ], + "properties": { + "allow_update_avatar": { + "type": "boolean" + }, + "allow_update_bio": { + "type": "boolean" + }, + "allow_update_display_name": { + "type": "boolean" + }, + "allow_update_location": { + "type": "boolean" + }, + "allow_update_username": { + "type": "boolean" + }, + "allow_update_website": { + "type": "boolean" + }, + "default_avatar": { + "type": "string", + "enum": [ + "system", + "gravatar" + ] + }, + "gravatar_base_url": { + "type": "string" + } + } + }, + "schema.SiteWriteReq": { + "type": "object", + "properties": { + "authorized_attachment_extensions": { + "type": "array", + "items": { + "type": "string" + } + }, + "authorized_image_extensions": { + "type": "array", + "items": { + "type": "string" + } + }, + "max_attachment_size": { + "type": "integer" + }, + "max_image_megapixel": { + "type": "integer" + }, + "max_image_size": { + "type": "integer" + }, + "recommend_tags": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.SiteWriteTag" + } + }, + "required_tag": { + "type": "boolean" + }, + "reserved_tags": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.SiteWriteTag" + } + }, + "restrict_answer": { + "type": "boolean" + } + } + }, + "schema.SiteWriteResp": { + "type": "object", + "properties": { + "authorized_attachment_extensions": { + "type": "array", + "items": { + "type": "string" + } + }, + "authorized_image_extensions": { + "type": "array", + "items": { + "type": "string" + } + }, + "max_attachment_size": { + "type": "integer" + }, + "max_image_megapixel": { + "type": "integer" + }, + "max_image_size": { + "type": "integer" + }, + "recommend_tags": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.SiteWriteTag" + } + }, + "required_tag": { + "type": "boolean" + }, + "reserved_tags": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.SiteWriteTag" + } + }, + "restrict_answer": { + "type": "boolean" + } + } + }, + "schema.SiteWriteTag": { + "type": "object", + "required": [ + "slug_name" + ], + "properties": { + "display_name": { + "type": "string" + }, + "slug_name": { + "type": "string" + } + } + }, + "schema.TagItem": { + "type": "object", + "properties": { + "display_name": { + "description": "display_name", + "type": "string", + "maxLength": 35 + }, + "original_text": { + "description": "original text", + "type": "string" + }, + "slug_name": { + "description": "slug_name", + "type": "string", + "maxLength": 35 + } + } + }, + "schema.TagResp": { + "type": "object", + "properties": { + "display_name": { + "type": "string" + }, + "main_tag_slug_name": { + "description": "if main tag slug name is not empty, this tag is synonymous with the main tag", + "type": "string" + }, + "recommend": { + "type": "boolean" + }, + "reserved": { + "type": "boolean" + }, + "slug_name": { + "type": "string" + } + } + }, + "schema.TagSynonym": { + "type": "object", + "properties": { + "display_name": { + "description": "display name", + "type": "string" + }, + "main_tag_slug_name": { + "description": "if main tag slug name is not empty, this tag is synonymous with the main tag", + "type": "string" + }, + "slug_name": { + "description": "slug name", + "type": "string" + }, + "tag_id": { + "description": "tag id", + "type": "string" + } + } + }, + "schema.ThemeOption": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, + "schema.UIOptionAction": { + "type": "object", + "properties": { + "loading": { + "$ref": "#/definitions/schema.LoadingAction" + }, + "method": { + "type": "string" + }, + "on_complete": { + "$ref": "#/definitions/schema.OnCompleteAction" + }, + "url": { + "type": "string" + } + } + }, + "schema.UnreviewedRevisionInfoInfo": { + "type": "object", + "properties": { + "answer_accepted": { + "type": "boolean" + }, + "answer_count": { + "type": "integer" + }, + "answer_id": { + "type": "string" + }, + "comment_id": { + "type": "string" + }, + "content": { + "type": "string" + }, + "created_at": { + "type": "integer" + }, + "html": { + "type": "string" + }, + "object_creator_user_id": { + "type": "string" + }, + "object_id": { + "type": "string" + }, + "object_type": { + "type": "string" + }, + "question_id": { + "type": "string" + }, + "show_status": { + "type": "integer" + }, + "status": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.TagResp" + } + }, + "title": { + "type": "string" + }, + "url_title": { + "type": "string" + } + } + }, + "schema.UpdateBadgeStatusReq": { + "type": "object", + "required": [ + "id", + "status" + ], + "properties": { + "id": { + "description": "badge id", + "type": "string" + }, + "status": { + "description": "badge status", + "allOf": [ + { + "$ref": "#/definitions/schema.BadgeStatus" + } + ] + } + } + }, + "schema.UpdateCommentReq": { + "type": "object", + "required": [ + "comment_id", + "original_text" + ], + "properties": { + "captcha_code": { + "type": "string" + }, + "captcha_id": { + "description": "whether user can delete it", + "type": "string" + }, + "comment_id": { + "description": "comment id", + "type": "string" + }, + "original_text": { + "description": "original comment content", + "type": "string", + "maxLength": 600, + "minLength": 2 + } + } + }, + "schema.UpdateFollowTagsReq": { + "type": "object", + "properties": { + "slug_name_list": { + "description": "tag slug name list", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "schema.UpdateInfoRequest": { + "type": "object", + "properties": { + "avatar": { + "$ref": "#/definitions/schema.AvatarInfo" + }, + "bio": { + "type": "string", + "maxLength": 4096 + }, + "display_name": { + "type": "string", + "maxLength": 30 + }, + "location": { + "type": "string", + "maxLength": 100 + }, + "username": { + "type": "string", + "maxLength": 30 + }, + "website": { + "type": "string", + "maxLength": 500 + } + } + }, + "schema.UpdatePluginConfigReq": { + "type": "object", + "required": [ + "plugin_slug_name" + ], + "properties": { + "config_fields": { + "type": "object", + "additionalProperties": {} + }, + "plugin_slug_name": { + "type": "string", + "maxLength": 100 + } + } + }, + "schema.UpdatePluginStatusReq": { + "type": "object", + "required": [ + "plugin_slug_name" + ], + "properties": { + "enabled": { + "type": "boolean" + }, + "plugin_slug_name": { + "type": "string", + "maxLength": 100 + } + } + }, + "schema.UpdatePrivilegesConfigReq": { + "type": "object", + "required": [ + "level" + ], + "properties": { + "custom_privileges": { + "type": "array", + "items": { + "$ref": "#/definitions/constant.Privilege" + } + }, + "level": { + "minimum": 1, + "allOf": [ + { + "$ref": "#/definitions/schema.PrivilegeLevel" + } + ] + } + } + }, + "schema.UpdateReactionReq": { + "type": "object", + "required": [ + "emoji", + "object_id", + "reaction" + ], + "properties": { + "emoji": { + "type": "string", + "enum": [ + "heart", + "smile", + "frown" + ] + }, + "object_id": { + "type": "string" + }, + "reaction": { + "type": "string", + "enum": [ + "activate", + "deactivate" + ] + } + } + }, + "schema.UpdateReviewReq": { + "type": "object", + "required": [ + "review_id", + "status" + ], + "properties": { + "review_id": { + "type": "integer" + }, + "status": { + "type": "string", + "enum": [ + "approve", + "reject" + ] + } + } + }, + "schema.UpdateSMTPConfigReq": { + "type": "object", + "properties": { + "encryption": { + "description": "\"\" SSL TLS", + "type": "string", + "enum": [ + "SSL", + "TLS" + ] + }, + "from_email": { + "type": "string", + "maxLength": 256 + }, + "from_name": { + "type": "string", + "maxLength": 256 + }, + "smtp_authentication": { + "type": "boolean" + }, + "smtp_host": { + "type": "string", + "maxLength": 256 + }, + "smtp_password": { + "type": "string", + "maxLength": 256 + }, + "smtp_port": { + "type": "integer", + "maximum": 65535, + "minimum": 1 + }, + "smtp_username": { + "type": "string", + "maxLength": 256 + }, + "test_email_recipient": { + "type": "string" + } + } + }, + "schema.UpdateTagReq": { + "type": "object", + "required": [ + "tag_id" + ], + "properties": { + "display_name": { + "description": "display_name", + "type": "string", + "maxLength": 35 + }, + "edit_summary": { + "description": "edit summary", + "type": "string" + }, + "original_text": { + "description": "original text", + "type": "string" + }, + "slug_name": { + "description": "slug_name", + "type": "string", + "maxLength": 35 + }, + "tag_id": { + "description": "tag_id", + "type": "string" + } + } + }, + "schema.UpdateTagSynonymReq": { + "type": "object", + "required": [ + "synonym_tag_list", + "tag_id" + ], + "properties": { + "synonym_tag_list": { + "description": "synonym tag list", + "type": "array", + "items": { + "$ref": "#/definitions/schema.TagItem" + } + }, + "tag_id": { + "description": "tag_id", + "type": "string" + } + } + }, + "schema.UpdateUserInterfaceRequest": { + "type": "object", + "required": [ + "color_scheme", + "language" + ], + "properties": { + "color_scheme": { + "description": "Color scheme", + "type": "string", + "maxLength": 100 + }, + "language": { + "description": "language", + "type": "string", + "maxLength": 100 + } + } + }, + "schema.UpdateUserNotificationConfigReq": { + "type": "object", + "properties": { + "all_new_question": { + "$ref": "#/definitions/schema.NotificationChannelConfig" + }, + "all_new_question_for_following_tags": { + "$ref": "#/definitions/schema.NotificationChannelConfig" + }, + "inbox": { + "$ref": "#/definitions/schema.NotificationChannelConfig" + } + } + }, + "schema.UpdateUserPasswordReq": { + "type": "object", + "required": [ + "password", + "user_id" + ], + "properties": { + "password": { + "type": "string", + "maxLength": 32, + "minLength": 8 + }, + "user_id": { + "type": "string" + } + } + }, + "schema.UpdateUserPluginConfigReq": { + "type": "object", + "required": [ + "plugin_slug_name" + ], + "properties": { + "config_fields": { + "type": "object", + "additionalProperties": {} + }, + "plugin_slug_name": { + "type": "string", + "maxLength": 100 + } + } + }, + "schema.UpdateUserRoleReq": { + "type": "object", + "required": [ + "role_id", + "user_id" + ], + "properties": { + "role_id": { + "description": "role id", + "type": "integer" + }, + "user_id": { + "description": "user id", + "type": "string" + } + } + }, + "schema.UpdateUserStatusReq": { + "type": "object", + "required": [ + "status", + "user_id" + ], + "properties": { + "remove_all_content": { + "type": "boolean" + }, + "status": { + "type": "string", + "enum": [ + "normal", + "suspended", + "deleted", + "inactive" + ] + }, + "user_id": { + "type": "string" + } + } + }, + "schema.UserBasicInfo": { + "type": "object", + "properties": { + "avatar": { + "type": "string" + }, + "display_name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "language": { + "type": "string" + }, + "location": { + "type": "string" + }, + "rank": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "username": { + "type": "string" + }, + "website": { + "type": "string" + } + } + }, + "schema.UserChangeEmailSendCodeReq": { + "type": "object", + "required": [ + "e_mail" + ], + "properties": { + "captcha_code": { + "type": "string" + }, + "captcha_id": { + "type": "string" + }, + "e_mail": { + "type": "string", + "maxLength": 500 + }, + "pass": { + "type": "string", + "maxLength": 32, + "minLength": 8 + } + } + }, + "schema.UserChangeEmailVerifyReq": { + "type": "object", + "required": [ + "code" + ], + "properties": { + "code": { + "type": "string", + "maxLength": 500 + } + } + }, + "schema.UserEmailLoginReq": { + "type": "object", + "required": [ + "e_mail", + "pass" + ], + "properties": { + "captcha_code": { + "type": "string" + }, + "captcha_id": { + "type": "string" + }, + "e_mail": { + "type": "string", + "maxLength": 500 + }, + "pass": { + "type": "string", + "maxLength": 32, + "minLength": 8 + } + } + }, + "schema.UserLoginResp": { + "type": "object", + "properties": { + "access_token": { + "description": "access token", + "type": "string" + }, + "answer_count": { + "description": "answer count", + "type": "integer" + }, + "authority_group": { + "description": "authority group", + "type": "integer" + }, + "avatar": { + "description": "avatar", + "type": "string" + }, + "bio": { + "description": "bio markdown", + "type": "string" + }, + "bio_html": { + "description": "bio html", + "type": "string" + }, + "color_scheme": { + "description": "Color scheme", + "type": "string" + }, + "created_at": { + "description": "create time", + "type": "integer" + }, + "display_name": { + "description": "display name", + "type": "string" + }, + "e_mail": { + "description": "email", + "type": "string" + }, + "follow_count": { + "description": "follow count", + "type": "integer" + }, + "have_password": { + "description": "user have password", + "type": "boolean" + }, + "id": { + "description": "user id", + "type": "string" + }, + "language": { + "description": "language", + "type": "string" + }, + "last_login_date": { + "description": "last login date", + "type": "integer" + }, + "location": { + "description": "location", + "type": "string" + }, + "mail_status": { + "description": "mail status(1 pass 2 to be verified)", + "type": "integer" + }, + "mobile": { + "description": "mobile", + "type": "string" + }, + "notice_status": { + "description": "notice status(1 on 2off)", + "type": "integer" + }, + "question_count": { + "description": "question count", + "type": "integer" + }, + "rank": { + "description": "rank", + "type": "integer" + }, + "role_id": { + "description": "role id", + "type": "integer" + }, + "status": { + "description": "user status", + "type": "string" + }, + "username": { + "description": "username", + "type": "string" + }, + "visit_token": { + "description": "visit token", + "type": "string" + }, + "website": { + "description": "website", + "type": "string" + } + } + }, + "schema.UserModifyPasswordReq": { + "type": "object", + "required": [ + "pass" + ], + "properties": { + "captcha_code": { + "type": "string" + }, + "captcha_id": { + "type": "string" + }, + "old_pass": { + "type": "string", + "maxLength": 32, + "minLength": 8 + }, + "pass": { + "type": "string", + "maxLength": 32, + "minLength": 8 + } + } + }, + "schema.UserRankingResp": { + "type": "object", + "properties": { + "staffs": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.UserRankingSimpleInfo" + } + }, + "users_with_the_most_reputation": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.UserRankingSimpleInfo" + } + }, + "users_with_the_most_vote": { + "type": "array", + "items": { + "$ref": "#/definitions/schema.UserRankingSimpleInfo" + } + } + } + }, + "schema.UserRankingSimpleInfo": { + "type": "object", + "properties": { + "avatar": { + "description": "avatar", + "type": "string" + }, + "display_name": { + "description": "display name", + "type": "string" + }, + "rank": { + "description": "rank", + "type": "integer" + }, + "username": { + "description": "username", + "type": "string" + }, + "vote_count": { + "description": "vote", + "type": "integer" + } + } + }, + "schema.UserRePassWordRequest": { + "type": "object", + "required": [ + "code", + "pass" + ], + "properties": { + "code": { + "type": "string", + "maxLength": 100 + }, + "pass": { + "type": "string", + "maxLength": 32 + } + } + }, + "schema.UserRegisterReq": { + "type": "object", + "required": [ + "e_mail", + "name", + "pass" + ], + "properties": { + "captcha_code": { + "type": "string" + }, + "captcha_id": { + "type": "string" + }, + "e_mail": { + "type": "string", + "maxLength": 500 + }, + "name": { + "type": "string", + "maxLength": 30, + "minLength": 2 + }, + "pass": { + "type": "string", + "maxLength": 32, + "minLength": 8 + } + } + }, + "schema.UserRetrievePassWordRequest": { + "type": "object", + "required": [ + "e_mail" + ], + "properties": { + "captcha_code": { + "type": "string" + }, + "captcha_id": { + "type": "string" + }, + "e_mail": { + "type": "string", + "maxLength": 500 + } + } + }, + "schema.UserUnsubscribeNotificationReq": { + "type": "object", + "required": [ + "code" + ], + "properties": { + "code": { + "type": "string", + "maxLength": 500 + } + } + }, + "schema.VoteReq": { + "type": "object", + "required": [ + "object_id" + ], + "properties": { + "captcha_code": { + "type": "string" + }, + "captcha_id": { + "type": "string" + }, + "is_cancel": { + "type": "boolean" + }, + "object_id": { + "type": "string" + } + } + }, + "schema.VoteResp": { + "type": "object", + "properties": { + "down_votes": { + "type": "integer" + }, + "up_votes": { + "type": "integer" + }, + "vote_status": { + "type": "string" + }, + "votes": { + "type": "integer" + } + } + }, + "translator.LangOption": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "progress": { + "description": "Translation completion percentage", + "type": "integer" + }, + "value": { + "type": "string" + } + } + } + }, + "securityDefinitions": { + "ApiKeyAuth": { + "type": "apiKey", + "name": "Authorization", + "in": "header" + } + } +}` -// Injectors from wire.go: - -// initApplication init application. -func initApplication(debug bool, serverConf *conf.Server, dbConf *data.Database, cacheConf *data.CacheConf, i18nConf *translator.I18n, swaggerConf *router.SwaggerConfig, serviceConf *service_config.ServiceConfig, uiConf *server.UI, logConf log.Logger) (*pacman.Application, func(), error) { - staticRouter := router.NewStaticRouter(serviceConf) - i18nTranslator, err := translator.NewTranslator(i18nConf) - if err != nil { - return nil, nil, err - } - engine, err := data.NewDB(debug, dbConf) - if err != nil { - return nil, nil, err - } - cache, cleanup, err := data.NewCache(cacheConf) - if err != nil { - return nil, nil, err - } - dataData, cleanup2, err := data.NewData(engine, cache) - if err != nil { - cleanup() - return nil, nil, err - } - siteInfoRepo := site_info.NewSiteInfo(dataData) - siteInfoCommonService := siteinfo_common.NewSiteInfoCommonService(siteInfoRepo) - langController := controller.NewLangController(i18nTranslator, siteInfoCommonService) - authRepo := auth.NewAuthRepo(dataData) - authService := auth2.NewAuthService(authRepo) - userRepo := user.NewUserRepo(dataData) - uniqueIDRepo := unique.NewUniqueIDRepo(dataData) - configRepo := config.NewConfigRepo(dataData) - configService := config2.NewConfigService(configRepo) - activityRepo := activity_common.NewActivityRepo(dataData, uniqueIDRepo, configService) - userRankRepo := rank.NewUserRankRepo(dataData, configService) - userActiveActivityRepo := activity.NewUserActiveActivityRepo(dataData, activityRepo, userRankRepo, configService) - emailRepo := export.NewEmailRepo(dataData) - emailService := export2.NewEmailService(configService, emailRepo, siteInfoCommonService) - userRoleRelRepo := role.NewUserRoleRelRepo(dataData) - roleRepo := role.NewRoleRepo(dataData) - roleService := role2.NewRoleService(roleRepo) - userRoleRelService := role2.NewUserRoleRelService(userRoleRelRepo, roleService) - userCommon := usercommon.NewUserCommon(userRepo, userRoleRelService, authService, siteInfoCommonService) - userExternalLoginRepo := user_external_login.NewUserExternalLoginRepo(dataData) - userNotificationConfigRepo := user_notification_config.NewUserNotificationConfigRepo(dataData) - userNotificationConfigService := user_notification_config2.NewUserNotificationConfigService(userRepo, userNotificationConfigRepo) - userExternalLoginService := user_external_login2.NewUserExternalLoginService(userRepo, userCommon, userExternalLoginRepo, emailService, siteInfoCommonService, userActiveActivityRepo, userNotificationConfigService) - questionRepo := question.NewQuestionRepo(dataData, uniqueIDRepo) - answerRepo := answer.NewAnswerRepo(dataData, uniqueIDRepo, userRankRepo, activityRepo) - voteRepo := activity_common.NewVoteRepo(dataData, activityRepo) - followRepo := activity_common.NewFollowRepo(dataData, uniqueIDRepo, activityRepo) - tagCommonRepo := tag_common.NewTagCommonRepo(dataData, uniqueIDRepo) - tagRelRepo := tag.NewTagRelRepo(dataData, uniqueIDRepo) - tagRepo := tag.NewTagRepo(dataData, uniqueIDRepo) - revisionRepo := revision.NewRevisionRepo(dataData, uniqueIDRepo) - revisionService := revision_common.NewRevisionService(revisionRepo, userRepo) - activityQueueService := activity_queue.NewActivityQueueService() - tagCommonService := tag_common2.NewTagCommonService(tagCommonRepo, tagRelRepo, tagRepo, revisionService, siteInfoCommonService, activityQueueService) - collectionRepo := collection.NewCollectionRepo(dataData, uniqueIDRepo) - collectionCommon := collectioncommon.NewCollectionCommon(collectionRepo) - answerCommon := answercommon.NewAnswerCommon(answerRepo) - metaRepo := meta.NewMetaRepo(dataData) - metaCommonService := metacommon.NewMetaCommonService(metaRepo) - questionCommon := questioncommon.NewQuestionCommon(questionRepo, answerRepo, voteRepo, followRepo, tagCommonService, userCommon, collectionCommon, answerCommon, metaCommonService, configService, activityQueueService, revisionRepo, siteInfoCommonService, dataData) - eventQueueService := event_queue.NewEventQueueService() - userService := content.NewUserService(userRepo, userActiveActivityRepo, activityRepo, emailService, authService, siteInfoCommonService, userRoleRelService, userCommon, userExternalLoginService, userNotificationConfigRepo, userNotificationConfigService, questionCommon, eventQueueService) - captchaRepo := captcha.NewCaptchaRepo(dataData) - captchaService := action.NewCaptchaService(captchaRepo) - userController := controller.NewUserController(authService, userService, captchaService, emailService, siteInfoCommonService, userNotificationConfigService) - commentRepo := comment.NewCommentRepo(dataData, uniqueIDRepo) - commentCommonRepo := comment.NewCommentCommonRepo(dataData, uniqueIDRepo) - objService := object_info.NewObjService(answerRepo, questionRepo, commentCommonRepo, tagCommonRepo, tagCommonService) - notificationQueueService := notice_queue.NewNotificationQueueService() - externalNotificationQueueService := notice_queue.NewNewQuestionNotificationQueueService() - commentService := comment2.NewCommentService(commentRepo, commentCommonRepo, userCommon, objService, voteRepo, emailService, userRepo, notificationQueueService, externalNotificationQueueService, activityQueueService, eventQueueService) - rolePowerRelRepo := role.NewRolePowerRelRepo(dataData) - rolePowerRelService := role2.NewRolePowerRelService(rolePowerRelRepo, userRoleRelService) - rankService := rank2.NewRankService(userCommon, userRankRepo, objService, userRoleRelService, rolePowerRelService, configService) - limitRepo := limit.NewRateLimitRepo(dataData) - rateLimitMiddleware := middleware.NewRateLimitMiddleware(limitRepo) - commentController := controller.NewCommentController(commentService, rankService, captchaService, rateLimitMiddleware) - reportRepo := report.NewReportRepo(dataData, uniqueIDRepo) - tagService := tag2.NewTagService(tagRepo, tagCommonService, revisionService, followRepo, siteInfoCommonService, activityQueueService) - answerActivityRepo := activity.NewAnswerActivityRepo(dataData, activityRepo, userRankRepo, notificationQueueService) - answerActivityService := activity2.NewAnswerActivityService(answerActivityRepo, configService) - externalNotificationService := notification.NewExternalNotificationService(dataData, userNotificationConfigRepo, followRepo, emailService, userRepo, externalNotificationQueueService, userExternalLoginRepo, siteInfoCommonService) - reviewRepo := review.NewReviewRepo(dataData) - reviewService := review2.NewReviewService(reviewRepo, objService, userCommon, userRepo, questionRepo, answerRepo, userRoleRelService, externalNotificationQueueService, tagCommonService, questionCommon, notificationQueueService, siteInfoCommonService) - questionService := content.NewQuestionService(activityRepo, questionRepo, answerRepo, tagCommonService, tagService, questionCommon, userCommon, userRepo, userRoleRelService, revisionService, metaCommonService, collectionCommon, answerActivityService, emailService, notificationQueueService, externalNotificationQueueService, activityQueueService, siteInfoCommonService, externalNotificationService, reviewService, configService, eventQueueService, reviewRepo) - answerService := content.NewAnswerService(answerRepo, questionRepo, questionCommon, userCommon, collectionCommon, userRepo, revisionService, answerActivityService, answerCommon, voteRepo, emailService, userRoleRelService, notificationQueueService, externalNotificationQueueService, activityQueueService, reviewService, eventQueueService) - reportHandle := report_handle.NewReportHandle(questionService, answerService, commentService) - reportService := report2.NewReportService(reportRepo, objService, userCommon, answerRepo, questionRepo, commentCommonRepo, reportHandle, configService, eventQueueService) - reportController := controller.NewReportController(reportService, rankService, captchaService) - contentVoteRepo := activity.NewVoteRepo(dataData, activityRepo, userRankRepo, notificationQueueService) - voteService := content.NewVoteService(contentVoteRepo, configService, questionRepo, answerRepo, commentCommonRepo, objService, eventQueueService) - voteController := controller.NewVoteController(voteService, rankService, captchaService) - tagController := controller.NewTagController(tagService, tagCommonService, rankService) - followFollowRepo := activity.NewFollowRepo(dataData, uniqueIDRepo, activityRepo) - followService := follow.NewFollowService(followFollowRepo, followRepo, tagCommonRepo) - followController := controller.NewFollowController(followService) - collectionGroupRepo := collection.NewCollectionGroupRepo(dataData) - collectionService := collection2.NewCollectionService(collectionRepo, collectionGroupRepo, questionCommon) - collectionController := controller.NewCollectionController(collectionService) - questionController := controller.NewQuestionController(questionService, answerService, rankService, siteInfoCommonService, captchaService, rateLimitMiddleware) - answerController := controller.NewAnswerController(answerService, rankService, captchaService, siteInfoCommonService, rateLimitMiddleware) - searchParser := search_parser.NewSearchParser(tagCommonService, userCommon) - searchRepo := search_common.NewSearchRepo(dataData, uniqueIDRepo, userCommon, tagCommonService) - searchService := content.NewSearchService(searchParser, searchRepo) - searchController := controller.NewSearchController(searchService, captchaService) - reviewActivityRepo := activity.NewReviewActivityRepo(dataData, activityRepo, userRankRepo, configService) - contentRevisionService := content.NewRevisionService(revisionRepo, userCommon, questionCommon, answerService, objService, questionRepo, answerRepo, tagRepo, tagCommonService, notificationQueueService, activityQueueService, reportRepo, reviewService, reviewActivityRepo) - revisionController := controller.NewRevisionController(contentRevisionService, rankService) - rankController := controller.NewRankController(rankService) - userAdminRepo := user.NewUserAdminRepo(dataData, authRepo) - notificationRepo := notification2.NewNotificationRepo(dataData) - pluginUserConfigRepo := plugin_config.NewPluginUserConfigRepo(dataData) - badgeAwardRepo := badge_award.NewBadgeAwardRepo(dataData, uniqueIDRepo) - userAdminService := user_admin.NewUserAdminService(userAdminRepo, userRoleRelService, authService, userCommon, userActiveActivityRepo, siteInfoCommonService, emailService, questionRepo, answerRepo, commentCommonRepo, userExternalLoginRepo, notificationRepo, pluginUserConfigRepo, badgeAwardRepo) - userAdminController := controller_admin.NewUserAdminController(userAdminService) - reasonRepo := reason.NewReasonRepo(configService) - reasonService := reason2.NewReasonService(reasonRepo) - reasonController := controller.NewReasonController(reasonService) - themeController := controller_admin.NewThemeController() - siteInfoService := siteinfo.NewSiteInfoService(siteInfoRepo, siteInfoCommonService, emailService, tagCommonService, configService, questionCommon) - siteInfoController := controller_admin.NewSiteInfoController(siteInfoService) - controllerSiteInfoController := controller.NewSiteInfoController(siteInfoCommonService) - notificationCommon := notificationcommon.NewNotificationCommon(dataData, notificationRepo, userCommon, activityRepo, followRepo, objService, notificationQueueService, userExternalLoginRepo, siteInfoCommonService) - badgeRepo := badge.NewBadgeRepo(dataData, uniqueIDRepo) - notificationService := notification.NewNotificationService(dataData, notificationRepo, notificationCommon, revisionService, userRepo, reportRepo, reviewService, badgeRepo) - notificationController := controller.NewNotificationController(notificationService, rankService) - dashboardService := dashboard.NewDashboardService(questionRepo, answerRepo, commentCommonRepo, voteRepo, userRepo, reportRepo, configService, siteInfoCommonService, serviceConf, reviewService, revisionRepo, dataData) - dashboardController := controller.NewDashboardController(dashboardService) - fileRecordRepo := file_record.NewFileRecordRepo(dataData) - fileRecordService := file_record2.NewFileRecordService(fileRecordRepo, revisionRepo, serviceConf, siteInfoCommonService) - uploaderService := uploader.NewUploaderService(serviceConf, siteInfoCommonService, fileRecordService) - uploadController := controller.NewUploadController(uploaderService) - activityActivityRepo := activity.NewActivityRepo(dataData, configService) - activityCommon := activity_common2.NewActivityCommon(activityRepo, activityQueueService) - commentCommonService := comment_common.NewCommentCommonService(commentCommonRepo) - activityService := activity2.NewActivityService(activityActivityRepo, userCommon, activityCommon, tagCommonService, objService, commentCommonService, revisionService, metaCommonService, configService) - activityController := controller.NewActivityController(activityService) - roleController := controller_admin.NewRoleController(roleService) - pluginConfigRepo := plugin_config.NewPluginConfigRepo(dataData) - importerService := importer.NewImporterService(questionService, rankService, userCommon) - pluginCommonService := plugin_common.NewPluginCommonService(pluginConfigRepo, pluginUserConfigRepo, configService, dataData, importerService) - pluginController := controller_admin.NewPluginController(pluginCommonService) - permissionController := controller.NewPermissionController(rankService) - userPluginController := controller.NewUserPluginController(pluginCommonService) - reviewController := controller.NewReviewController(reviewService, rankService, captchaService) - metaService := meta2.NewMetaService(metaCommonService, userCommon, answerRepo, questionRepo, eventQueueService) - metaController := controller.NewMetaController(metaService) - badgeGroupRepo := badge_group.NewBadgeGroupRepo(dataData, uniqueIDRepo) - eventRuleRepo := badge.NewEventRuleRepo(dataData) - badgeAwardService := badge2.NewBadgeAwardService(badgeAwardRepo, badgeRepo, userCommon, objService, notificationQueueService) - badgeEventService := badge2.NewBadgeEventService(dataData, eventQueueService, badgeRepo, eventRuleRepo, badgeAwardService) - badgeService := badge2.NewBadgeService(badgeRepo, badgeGroupRepo, badgeAwardRepo, badgeEventService, siteInfoCommonService) - badgeController := controller.NewBadgeController(badgeService, badgeAwardService) - controller_adminBadgeController := controller_admin.NewBadgeController(badgeService) - answerAPIRouter := router.NewAnswerAPIRouter(langController, userController, commentController, reportController, voteController, tagController, followController, collectionController, questionController, answerController, searchController, revisionController, rankController, userAdminController, reasonController, themeController, siteInfoController, controllerSiteInfoController, notificationController, dashboardController, uploadController, activityController, roleController, pluginController, permissionController, userPluginController, reviewController, metaController, badgeController, controller_adminBadgeController) - swaggerRouter := router.NewSwaggerRouter(swaggerConf) - uiRouter := router.NewUIRouter(controllerSiteInfoController, siteInfoCommonService) - authUserMiddleware := middleware.NewAuthUserMiddleware(authService, siteInfoCommonService) - avatarMiddleware := middleware.NewAvatarMiddleware(serviceConf, uploaderService) - shortIDMiddleware := middleware.NewShortIDMiddleware(siteInfoCommonService) - templateRenderController := templaterender.NewTemplateRenderController(questionService, userService, tagService, answerService, commentService, siteInfoCommonService, questionRepo) - templateController := controller.NewTemplateController(templateRenderController, siteInfoCommonService, eventQueueService, userService, questionService) - templateRouter := router.NewTemplateRouter(templateController, templateRenderController, siteInfoController, authUserMiddleware) - connectorController := controller.NewConnectorController(siteInfoCommonService, emailService, userExternalLoginService) - userCenterLoginService := user_external_login2.NewUserCenterLoginService(userRepo, userCommon, userExternalLoginRepo, userActiveActivityRepo, siteInfoCommonService) - userCenterController := controller.NewUserCenterController(userCenterLoginService, siteInfoCommonService) - captchaController := controller.NewCaptchaController() - embedController := controller.NewEmbedController() - renderController := controller.NewRenderController() - pluginAPIRouter := router.NewPluginAPIRouter(connectorController, userCenterController, captchaController, embedController, renderController) - ginEngine := server.NewHTTPServer(debug, staticRouter, answerAPIRouter, swaggerRouter, uiRouter, authUserMiddleware, avatarMiddleware, shortIDMiddleware, templateRouter, pluginAPIRouter, uiConf) - scheduledTaskManager := cron.NewScheduledTaskManager(siteInfoCommonService, questionService, fileRecordService, serviceConf) - application := newApplication(serverConf, ginEngine, scheduledTaskManager) - return application, func() { - cleanup2() - cleanup() - }, nil +// SwaggerInfo holds exported Swagger Info so clients can modify it +var SwaggerInfo = &swag.Spec{ + Version: "", + Host: "", + BasePath: "/", + Schemes: []string{}, + Title: "Apache Answer", + Description: "Apache Answer API", + InfoInstanceName: "swagger", + SwaggerTemplate: docTemplate, + LeftDelim: "{{", + RightDelim: "}}", } + +func init() { + swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo) +} \ No newline at end of file diff --git a/docs/docs.go b/docs/docs.go index 34f87f2b..cb6e5af1 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -1,3 +1,22 @@ + /* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + // Package docs Code generated by swaggo/swag. DO NOT EDIT package docs diff --git a/docs/swagger.yaml b/docs/swagger.yaml index bc0df88b..445f6bce 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -1,3 +1,20 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + basePath: / definitions: constant.NotificationChannelKey: @@ -6020,7 +6037,6 @@ paths: $ref: '#/definitions/handler.RespBody' security: - ApiKeyAuth: [] - - ApiKeyAuth: [] summary: add report tags: - Report @@ -6045,7 +6061,6 @@ paths: $ref: '#/definitions/handler.RespBody' security: - ApiKeyAuth: [] - - ApiKeyAuth: [] summary: review report tags: - Report @@ -6104,7 +6119,6 @@ paths: $ref: '#/definitions/handler.RespBody' security: - ApiKeyAuth: [] - - ApiKeyAuth: [] summary: update review tags: - Review @@ -6768,7 +6782,6 @@ paths: type: string security: - ApiKeyAuth: [] - - ApiKeyAuth: [] summary: UserVerifyEmailSend tags: - User @@ -7473,4 +7486,4 @@ securityDefinitions: in: header name: Authorization type: apiKey -swagger: "2.0" +swagger: "2.0" \ No newline at end of file