8558 lines
197 KiB
YAML
8558 lines
197 KiB
YAML
# 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:
|
|
enum:
|
|
- email
|
|
type: string
|
|
x-enum-varnames:
|
|
- EmailChannel
|
|
constant.Privilege:
|
|
properties:
|
|
key:
|
|
type: string
|
|
label:
|
|
type: string
|
|
value:
|
|
minimum: 1
|
|
type: integer
|
|
type: object
|
|
entity.BadgeLevel:
|
|
enum:
|
|
- 1
|
|
- 2
|
|
- 3
|
|
type: integer
|
|
x-enum-varnames:
|
|
- BadgeLevelBronze
|
|
- BadgeLevelSilver
|
|
- BadgeLevelGold
|
|
handler.RespBody:
|
|
properties:
|
|
code:
|
|
description: http code
|
|
type: integer
|
|
data:
|
|
description: response data
|
|
msg:
|
|
description: response message
|
|
type: string
|
|
reason:
|
|
description: reason key
|
|
type: string
|
|
type: object
|
|
install.CheckConfigFileResp:
|
|
properties:
|
|
config_file_exist:
|
|
type: boolean
|
|
db_connection_success:
|
|
type: boolean
|
|
db_table_exist:
|
|
type: boolean
|
|
type: object
|
|
install.CheckDatabaseReq:
|
|
properties:
|
|
db_file:
|
|
type: string
|
|
db_host:
|
|
type: string
|
|
db_name:
|
|
type: string
|
|
db_password:
|
|
type: string
|
|
db_type:
|
|
enum:
|
|
- postgres
|
|
- sqlite3
|
|
- mysql
|
|
type: string
|
|
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
|
|
required:
|
|
- db_type
|
|
type: object
|
|
install.InitBaseInfoReq:
|
|
properties:
|
|
contact_email:
|
|
maxLength: 500
|
|
type: string
|
|
email:
|
|
maxLength: 500
|
|
type: string
|
|
external_content_display:
|
|
enum:
|
|
- always_display
|
|
- ask_before_display
|
|
type: string
|
|
lang:
|
|
maxLength: 30
|
|
type: string
|
|
login_required:
|
|
type: boolean
|
|
name:
|
|
maxLength: 30
|
|
minLength: 2
|
|
type: string
|
|
password:
|
|
maxLength: 32
|
|
minLength: 8
|
|
type: string
|
|
site_name:
|
|
maxLength: 30
|
|
type: string
|
|
site_url:
|
|
maxLength: 512
|
|
type: string
|
|
required:
|
|
- contact_email
|
|
- email
|
|
- external_content_display
|
|
- lang
|
|
- name
|
|
- password
|
|
- site_name
|
|
- site_url
|
|
type: object
|
|
pager.PageModel:
|
|
properties:
|
|
count:
|
|
type: integer
|
|
list: {}
|
|
type: object
|
|
plugin.EmbedConfig:
|
|
properties:
|
|
enable:
|
|
type: boolean
|
|
platform:
|
|
type: string
|
|
type: object
|
|
plugin.RenderConfig:
|
|
properties:
|
|
select_theme:
|
|
type: string
|
|
type: object
|
|
schema.AIConversationAdminDeleteReq:
|
|
properties:
|
|
conversation_id:
|
|
type: string
|
|
required:
|
|
- conversation_id
|
|
type: object
|
|
schema.AIConversationAdminDetailResp:
|
|
properties:
|
|
conversation_id:
|
|
type: string
|
|
created_at:
|
|
type: integer
|
|
records:
|
|
items:
|
|
$ref: '#/definitions/schema.AIConversationRecord'
|
|
type: array
|
|
topic:
|
|
type: string
|
|
user_info:
|
|
$ref: '#/definitions/schema.AIConversationUserInfo'
|
|
type: object
|
|
schema.AIConversationAdminListItem:
|
|
properties:
|
|
created_at:
|
|
type: integer
|
|
helpful_count:
|
|
type: integer
|
|
id:
|
|
type: string
|
|
topic:
|
|
type: string
|
|
unhelpful_count:
|
|
type: integer
|
|
user_info:
|
|
$ref: '#/definitions/schema.AIConversationUserInfo'
|
|
type: object
|
|
schema.AIConversationDetailResp:
|
|
properties:
|
|
conversation_id:
|
|
type: string
|
|
created_at:
|
|
type: integer
|
|
records:
|
|
items:
|
|
$ref: '#/definitions/schema.AIConversationRecord'
|
|
type: array
|
|
topic:
|
|
type: string
|
|
updated_at:
|
|
type: integer
|
|
type: object
|
|
schema.AIConversationListItem:
|
|
properties:
|
|
conversation_id:
|
|
type: string
|
|
created_at:
|
|
type: integer
|
|
topic:
|
|
type: string
|
|
type: object
|
|
schema.AIConversationRecord:
|
|
properties:
|
|
chat_completion_id:
|
|
type: string
|
|
content:
|
|
type: string
|
|
created_at:
|
|
type: integer
|
|
helpful:
|
|
type: integer
|
|
reasoning_content:
|
|
type: string
|
|
role:
|
|
type: string
|
|
unhelpful:
|
|
type: integer
|
|
type: object
|
|
schema.AIConversationUserInfo:
|
|
properties:
|
|
avatar:
|
|
type: string
|
|
display_name:
|
|
type: string
|
|
id:
|
|
type: string
|
|
rank:
|
|
type: integer
|
|
username:
|
|
type: string
|
|
type: object
|
|
schema.AIConversationVoteReq:
|
|
properties:
|
|
cancel:
|
|
type: boolean
|
|
chat_completion_id:
|
|
type: string
|
|
vote_type:
|
|
enum:
|
|
- helpful
|
|
- unhelpful
|
|
type: string
|
|
required:
|
|
- chat_completion_id
|
|
- vote_type
|
|
type: object
|
|
schema.AIPromptConfig:
|
|
properties:
|
|
en_us:
|
|
type: string
|
|
zh_cn:
|
|
type: string
|
|
type: object
|
|
schema.AcceptAnswerReq:
|
|
properties:
|
|
answer_id:
|
|
type: string
|
|
question_id:
|
|
maxLength: 30
|
|
type: string
|
|
required:
|
|
- question_id
|
|
type: object
|
|
schema.ActObjectInfo:
|
|
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
|
|
type: object
|
|
schema.ActObjectTimeline:
|
|
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'
|
|
type: object
|
|
schema.ActionRecordResp:
|
|
properties:
|
|
captcha_id:
|
|
type: string
|
|
captcha_img:
|
|
type: string
|
|
verify:
|
|
type: boolean
|
|
type: object
|
|
schema.AddAPIKeyReq:
|
|
properties:
|
|
description:
|
|
maxLength: 150
|
|
type: string
|
|
scope:
|
|
enum:
|
|
- read-only
|
|
- global
|
|
type: string
|
|
required:
|
|
- description
|
|
- scope
|
|
type: object
|
|
schema.AddAPIKeyResp:
|
|
properties:
|
|
access_key:
|
|
type: string
|
|
type: object
|
|
schema.AddCommentReq:
|
|
properties:
|
|
captcha_code:
|
|
type: string
|
|
captcha_id:
|
|
type: string
|
|
mention_username_list:
|
|
description: '@ user id list'
|
|
items:
|
|
type: string
|
|
type: array
|
|
object_id:
|
|
description: object id
|
|
type: string
|
|
original_text:
|
|
description: original comment content
|
|
maxLength: 600
|
|
minLength: 2
|
|
type: string
|
|
reply_comment_id:
|
|
description: reply comment id
|
|
type: string
|
|
required:
|
|
- object_id
|
|
- original_text
|
|
type: object
|
|
schema.AddReportReq:
|
|
properties:
|
|
captcha_code:
|
|
type: string
|
|
captcha_id:
|
|
description: captcha_id
|
|
type: string
|
|
content:
|
|
description: report content
|
|
maxLength: 500
|
|
type: string
|
|
object_id:
|
|
description: object id
|
|
maxLength: 20
|
|
type: string
|
|
report_type:
|
|
description: report type
|
|
type: integer
|
|
required:
|
|
- object_id
|
|
- report_type
|
|
type: object
|
|
schema.AddTagReq:
|
|
properties:
|
|
display_name:
|
|
description: display_name
|
|
maxLength: 35
|
|
type: string
|
|
original_text:
|
|
description: original text
|
|
maxLength: 65536
|
|
type: string
|
|
slug_name:
|
|
description: slug_name
|
|
maxLength: 35
|
|
type: string
|
|
required:
|
|
- display_name
|
|
- original_text
|
|
- slug_name
|
|
type: object
|
|
schema.AddUserReq:
|
|
properties:
|
|
display_name:
|
|
maxLength: 30
|
|
minLength: 2
|
|
type: string
|
|
email:
|
|
maxLength: 500
|
|
type: string
|
|
password:
|
|
maxLength: 32
|
|
minLength: 8
|
|
type: string
|
|
required:
|
|
- display_name
|
|
- email
|
|
- password
|
|
type: object
|
|
schema.AddUsersReq:
|
|
properties:
|
|
users:
|
|
description: users info line by line
|
|
type: string
|
|
type: object
|
|
schema.AdminUpdateAnswerStatusReq:
|
|
properties:
|
|
answer_id:
|
|
type: string
|
|
status:
|
|
enum:
|
|
- available
|
|
- deleted
|
|
type: string
|
|
required:
|
|
- answer_id
|
|
- status
|
|
type: object
|
|
schema.AdminUpdateQuestionStatusReq:
|
|
properties:
|
|
question_id:
|
|
type: string
|
|
status:
|
|
enum:
|
|
- available
|
|
- closed
|
|
- deleted
|
|
type: string
|
|
required:
|
|
- question_id
|
|
- status
|
|
type: object
|
|
schema.AnswerAddReq:
|
|
properties:
|
|
captcha_code:
|
|
type: string
|
|
captcha_id:
|
|
type: string
|
|
content:
|
|
maxLength: 65535
|
|
minLength: 6
|
|
type: string
|
|
question_id:
|
|
type: string
|
|
required:
|
|
- content
|
|
type: object
|
|
schema.AnswerInfo:
|
|
properties:
|
|
accepted:
|
|
type: integer
|
|
collected:
|
|
type: boolean
|
|
content:
|
|
type: string
|
|
create_time:
|
|
type: integer
|
|
html:
|
|
type: string
|
|
id:
|
|
type: string
|
|
member_actions:
|
|
description: MemberActions
|
|
items:
|
|
$ref: '#/definitions/schema.PermissionMemberAction'
|
|
type: array
|
|
question_id:
|
|
type: string
|
|
question_info:
|
|
$ref: '#/definitions/schema.QuestionInfoResp'
|
|
status:
|
|
type: integer
|
|
update_time:
|
|
type: integer
|
|
update_user_info:
|
|
$ref: '#/definitions/schema.UserBasicInfo'
|
|
user_info:
|
|
$ref: '#/definitions/schema.UserBasicInfo'
|
|
vote_count:
|
|
type: integer
|
|
vote_status:
|
|
type: string
|
|
type: object
|
|
schema.AnswerUpdateReq:
|
|
properties:
|
|
captcha_code:
|
|
type: string
|
|
captcha_id:
|
|
type: string
|
|
content:
|
|
maxLength: 65535
|
|
minLength: 6
|
|
type: string
|
|
edit_summary:
|
|
type: string
|
|
id:
|
|
type: string
|
|
title:
|
|
type: string
|
|
required:
|
|
- content
|
|
type: object
|
|
schema.AvatarInfo:
|
|
properties:
|
|
custom:
|
|
maxLength: 200
|
|
type: string
|
|
gravatar:
|
|
maxLength: 200
|
|
type: string
|
|
type:
|
|
maxLength: 100
|
|
type: string
|
|
type: object
|
|
schema.BadgeListInfo:
|
|
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:
|
|
allOf:
|
|
- $ref: '#/definitions/entity.BadgeLevel'
|
|
description: badge level
|
|
name:
|
|
description: badge name
|
|
type: string
|
|
type: object
|
|
schema.BadgeStatus:
|
|
enum:
|
|
- active
|
|
- inactive
|
|
type: string
|
|
x-enum-varnames:
|
|
- BadgeStatusActive
|
|
- BadgeStatusInactive
|
|
schema.CloseQuestionReq:
|
|
properties:
|
|
close_msg:
|
|
description: close_type
|
|
type: string
|
|
close_type:
|
|
description: close_type
|
|
type: integer
|
|
id:
|
|
type: string
|
|
required:
|
|
- id
|
|
type: object
|
|
schema.CollectionSwitchReq:
|
|
properties:
|
|
bookmark:
|
|
type: boolean
|
|
group_id:
|
|
type: string
|
|
object_id:
|
|
type: string
|
|
required:
|
|
- group_id
|
|
- object_id
|
|
type: object
|
|
schema.CollectionSwitchResp:
|
|
properties:
|
|
object_collection_count:
|
|
type: integer
|
|
type: object
|
|
schema.ConfigField:
|
|
properties:
|
|
description:
|
|
type: string
|
|
name:
|
|
type: string
|
|
options:
|
|
items:
|
|
$ref: '#/definitions/schema.ConfigFieldOption'
|
|
type: array
|
|
required:
|
|
type: boolean
|
|
title:
|
|
type: string
|
|
type:
|
|
type: string
|
|
ui_options:
|
|
$ref: '#/definitions/schema.ConfigFieldUIOptions'
|
|
value: {}
|
|
type: object
|
|
schema.ConfigFieldOption:
|
|
properties:
|
|
label:
|
|
type: string
|
|
value:
|
|
type: string
|
|
type: object
|
|
schema.ConfigFieldUIOptions:
|
|
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
|
|
type: object
|
|
schema.ConnectorInfoResp:
|
|
properties:
|
|
icon:
|
|
type: string
|
|
link:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type: object
|
|
schema.ConnectorUserInfoResp:
|
|
properties:
|
|
binding:
|
|
type: boolean
|
|
external_id:
|
|
type: string
|
|
icon:
|
|
type: string
|
|
link:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type: object
|
|
schema.DeleteAPIKeyReq:
|
|
properties:
|
|
id:
|
|
type: integer
|
|
type: object
|
|
schema.DeletePermanentlyReq:
|
|
properties:
|
|
type:
|
|
enum:
|
|
- users
|
|
- questions
|
|
- answers
|
|
type: string
|
|
required:
|
|
- type
|
|
type: object
|
|
schema.EditUserProfileReq:
|
|
properties:
|
|
display_name:
|
|
maxLength: 30
|
|
minLength: 2
|
|
type: string
|
|
email:
|
|
maxLength: 500
|
|
type: string
|
|
user_id:
|
|
type: string
|
|
username:
|
|
maxLength: 30
|
|
minLength: 2
|
|
type: string
|
|
required:
|
|
- display_name
|
|
- email
|
|
- user_id
|
|
type: object
|
|
schema.ExternalLoginBindingUserSendEmailReq:
|
|
properties:
|
|
binding_key:
|
|
maxLength: 100
|
|
type: string
|
|
email:
|
|
maxLength: 512
|
|
type: string
|
|
must:
|
|
description: |-
|
|
If must is true, whatever email if exists, try to bind user.
|
|
If must is false, when email exist, will only be prompted with a warning.
|
|
type: boolean
|
|
required:
|
|
- binding_key
|
|
- email
|
|
type: object
|
|
schema.ExternalLoginBindingUserSendEmailResp:
|
|
properties:
|
|
access_token:
|
|
type: string
|
|
email_exist_and_must_be_confirmed:
|
|
type: boolean
|
|
type: object
|
|
schema.ExternalLoginUnbindingReq:
|
|
properties:
|
|
external_id:
|
|
maxLength: 128
|
|
type: string
|
|
required:
|
|
- external_id
|
|
type: object
|
|
schema.FollowReq:
|
|
properties:
|
|
is_cancel:
|
|
description: is cancel
|
|
type: boolean
|
|
object_id:
|
|
description: object id
|
|
type: string
|
|
required:
|
|
- object_id
|
|
type: object
|
|
schema.FollowResp:
|
|
properties:
|
|
follows:
|
|
description: the followers of object
|
|
type: integer
|
|
is_followed:
|
|
description: if user is followed object will be true,otherwise false
|
|
type: boolean
|
|
type: object
|
|
schema.GetAIModelResp:
|
|
properties:
|
|
created:
|
|
type: integer
|
|
id:
|
|
type: string
|
|
object:
|
|
type: string
|
|
owned_by:
|
|
type: string
|
|
type: object
|
|
schema.GetAIProviderResp:
|
|
properties:
|
|
default_api_host:
|
|
type: string
|
|
display_name:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type: object
|
|
schema.GetAPIKeyResp:
|
|
properties:
|
|
access_key:
|
|
type: string
|
|
created_at:
|
|
type: integer
|
|
description:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
last_used_at:
|
|
type: integer
|
|
scope:
|
|
type: string
|
|
type: object
|
|
schema.GetAnswerInfoResp:
|
|
properties:
|
|
info:
|
|
$ref: '#/definitions/schema.AnswerInfo'
|
|
question:
|
|
$ref: '#/definitions/schema.QuestionInfoResp'
|
|
type: object
|
|
schema.GetBadgeInfoResp:
|
|
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:
|
|
allOf:
|
|
- $ref: '#/definitions/entity.BadgeLevel'
|
|
description: badge level
|
|
name:
|
|
description: badge name
|
|
type: string
|
|
type: object
|
|
schema.GetBadgeListPagedResp:
|
|
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:
|
|
allOf:
|
|
- $ref: '#/definitions/entity.BadgeLevel'
|
|
description: badge level
|
|
name:
|
|
description: badge name
|
|
type: string
|
|
status:
|
|
allOf:
|
|
- $ref: '#/definitions/schema.BadgeStatus'
|
|
description: badge status
|
|
type: object
|
|
schema.GetBadgeListResp:
|
|
properties:
|
|
badges:
|
|
description: badge list info
|
|
items:
|
|
$ref: '#/definitions/schema.BadgeListInfo'
|
|
type: array
|
|
group_name:
|
|
description: badge group name
|
|
type: string
|
|
type: object
|
|
schema.GetCommentPersonalWithPageResp:
|
|
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
|
|
enum:
|
|
- question
|
|
- answer
|
|
- tag
|
|
- comment
|
|
type: string
|
|
question_id:
|
|
description: question id
|
|
type: string
|
|
title:
|
|
description: title
|
|
type: string
|
|
url_title:
|
|
description: url title
|
|
type: string
|
|
type: object
|
|
schema.GetCommentResp:
|
|
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
|
|
items:
|
|
$ref: '#/definitions/schema.PermissionMemberAction'
|
|
type: array
|
|
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
|
|
type: object
|
|
schema.GetCurrentLoginUserInfoResp:
|
|
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
|
|
suspended_until:
|
|
description: suspended until timestamp
|
|
type: integer
|
|
username:
|
|
description: username
|
|
type: string
|
|
visit_token:
|
|
description: visit token
|
|
type: string
|
|
website:
|
|
description: website
|
|
type: string
|
|
type: object
|
|
schema.GetFollowingTagsResp:
|
|
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
|
|
type: object
|
|
schema.GetObjectTimelineResp:
|
|
properties:
|
|
object_info:
|
|
$ref: '#/definitions/schema.ActObjectInfo'
|
|
timeline:
|
|
items:
|
|
$ref: '#/definitions/schema.ActObjectTimeline'
|
|
type: array
|
|
type: object
|
|
schema.GetOtherUserInfoByUsernameResp:
|
|
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
|
|
follow 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
|
|
suspended_until:
|
|
description: suspended until timestamp
|
|
type: integer
|
|
username:
|
|
description: username
|
|
type: string
|
|
website:
|
|
description: website
|
|
type: string
|
|
type: object
|
|
schema.GetOtherUserInfoResp:
|
|
properties:
|
|
info:
|
|
$ref: '#/definitions/schema.GetOtherUserInfoByUsernameResp'
|
|
type: object
|
|
schema.GetPluginConfigResp:
|
|
properties:
|
|
config_fields:
|
|
items:
|
|
$ref: '#/definitions/schema.ConfigField'
|
|
type: array
|
|
description:
|
|
type: string
|
|
name:
|
|
type: string
|
|
slug_name:
|
|
type: string
|
|
version:
|
|
type: string
|
|
type: object
|
|
schema.GetPluginListResp:
|
|
properties:
|
|
description:
|
|
type: string
|
|
enabled:
|
|
type: boolean
|
|
have_config:
|
|
type: boolean
|
|
link:
|
|
type: string
|
|
name:
|
|
type: string
|
|
slug_name:
|
|
type: string
|
|
version:
|
|
type: string
|
|
type: object
|
|
schema.GetPrivilegesConfigResp:
|
|
properties:
|
|
options:
|
|
items:
|
|
$ref: '#/definitions/schema.PrivilegeOption'
|
|
type: array
|
|
selected_level:
|
|
$ref: '#/definitions/schema.PrivilegeLevel'
|
|
type: object
|
|
schema.GetRankPersonalPageResp:
|
|
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
|
|
enum:
|
|
- question
|
|
- answer
|
|
- tag
|
|
- comment
|
|
type: string
|
|
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
|
|
type: object
|
|
schema.GetReportListPageResp:
|
|
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:
|
|
enum:
|
|
- question
|
|
- answer
|
|
- comment
|
|
type: string
|
|
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:
|
|
items:
|
|
$ref: '#/definitions/schema.TagResp'
|
|
type: array
|
|
title:
|
|
type: string
|
|
url_title:
|
|
type: string
|
|
type: object
|
|
schema.GetReviewingTypeResp:
|
|
properties:
|
|
label:
|
|
type: string
|
|
name:
|
|
type: string
|
|
todo_amount:
|
|
type: integer
|
|
type: object
|
|
schema.GetRevisionResp:
|
|
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'
|
|
type: object
|
|
schema.GetRoleResp:
|
|
properties:
|
|
description:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
type: object
|
|
schema.GetSMTPConfigResp:
|
|
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
|
|
type: object
|
|
schema.GetSiteLegalInfoResp:
|
|
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
|
|
type: object
|
|
schema.GetTagBasicResp:
|
|
properties:
|
|
display_name:
|
|
type: string
|
|
recommend:
|
|
type: boolean
|
|
reserved:
|
|
type: boolean
|
|
slug_name:
|
|
type: string
|
|
tag_id:
|
|
type: string
|
|
type: object
|
|
schema.GetTagPageResp:
|
|
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
|
|
type: object
|
|
schema.GetTagResp:
|
|
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:
|
|
items:
|
|
$ref: '#/definitions/schema.PermissionMemberAction'
|
|
type: array
|
|
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
|
|
type: object
|
|
schema.GetTagSynonymsResp:
|
|
properties:
|
|
member_actions:
|
|
description: MemberActions
|
|
items:
|
|
$ref: '#/definitions/schema.PermissionMemberAction'
|
|
type: array
|
|
synonyms:
|
|
description: synonyms
|
|
items:
|
|
$ref: '#/definitions/schema.TagSynonym'
|
|
type: array
|
|
type: object
|
|
schema.GetUnreviewedPostPageResp:
|
|
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:
|
|
enum:
|
|
- question
|
|
- answer
|
|
- comment
|
|
type: string
|
|
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:
|
|
items:
|
|
$ref: '#/definitions/schema.TagResp'
|
|
type: array
|
|
title:
|
|
type: string
|
|
url_title:
|
|
type: string
|
|
type: object
|
|
schema.GetUnreviewedRevisionResp:
|
|
properties:
|
|
info:
|
|
$ref: '#/definitions/schema.UnreviewedRevisionInfoInfo'
|
|
type:
|
|
type: string
|
|
unreviewed_info:
|
|
$ref: '#/definitions/schema.GetRevisionResp'
|
|
type: object
|
|
schema.GetUserActivationResp:
|
|
properties:
|
|
activation_url:
|
|
type: string
|
|
type: object
|
|
schema.GetUserBadgeAwardListResp:
|
|
properties:
|
|
earned_count:
|
|
description: badge award count
|
|
type: integer
|
|
icon:
|
|
description: badge icon
|
|
type: string
|
|
id:
|
|
description: badge id
|
|
type: string
|
|
level:
|
|
allOf:
|
|
- $ref: '#/definitions/entity.BadgeLevel'
|
|
description: badge level
|
|
name:
|
|
description: badge name
|
|
type: string
|
|
type: object
|
|
schema.GetUserNotificationConfigResp:
|
|
properties:
|
|
all_new_question:
|
|
$ref: '#/definitions/schema.NotificationChannelConfig'
|
|
all_new_question_for_following_tags:
|
|
$ref: '#/definitions/schema.NotificationChannelConfig'
|
|
inbox:
|
|
$ref: '#/definitions/schema.NotificationChannelConfig'
|
|
type: object
|
|
schema.GetUserPageResp:
|
|
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
|
|
suspended_until:
|
|
description: suspended until time
|
|
type: integer
|
|
user_id:
|
|
description: user id
|
|
type: string
|
|
username:
|
|
description: username
|
|
type: string
|
|
type: object
|
|
schema.GetUserPluginListResp:
|
|
properties:
|
|
name:
|
|
type: string
|
|
slug_name:
|
|
type: string
|
|
type: object
|
|
schema.GetUserStaffResp:
|
|
properties:
|
|
avatar:
|
|
description: avatar
|
|
type: string
|
|
display_name:
|
|
description: display name
|
|
type: string
|
|
username:
|
|
description: username
|
|
type: string
|
|
type: object
|
|
schema.GetVoteWithPageResp:
|
|
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
|
|
enum:
|
|
- question
|
|
- answer
|
|
- tag
|
|
- comment
|
|
type: string
|
|
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
|
|
type: object
|
|
schema.LoadingAction:
|
|
properties:
|
|
state:
|
|
type: string
|
|
text:
|
|
type: string
|
|
type: object
|
|
schema.NotificationChannelConfig:
|
|
properties:
|
|
enable:
|
|
type: boolean
|
|
key:
|
|
$ref: '#/definitions/constant.NotificationChannelKey'
|
|
type: object
|
|
schema.NotificationClearIDRequest:
|
|
properties:
|
|
id:
|
|
type: string
|
|
type: object
|
|
schema.NotificationClearRequest:
|
|
properties:
|
|
type:
|
|
enum:
|
|
- inbox
|
|
- achievement
|
|
type: string
|
|
required:
|
|
- type
|
|
type: object
|
|
schema.OnCompleteAction:
|
|
properties:
|
|
refresh_form_config:
|
|
type: boolean
|
|
toast_return_message:
|
|
type: boolean
|
|
type: object
|
|
schema.Operation:
|
|
properties:
|
|
description:
|
|
type: string
|
|
level:
|
|
$ref: '#/definitions/schema.OperationLevel'
|
|
msg:
|
|
type: string
|
|
time:
|
|
type: integer
|
|
type:
|
|
type: string
|
|
type: object
|
|
schema.OperationLevel:
|
|
enum:
|
|
- info
|
|
- danger
|
|
- warning
|
|
- secondary
|
|
type: string
|
|
x-enum-varnames:
|
|
- OperationLevelInfo
|
|
- OperationLevelDanger
|
|
- OperationLevelWarning
|
|
- OperationLevelSecondary
|
|
schema.OperationQuestionReq:
|
|
properties:
|
|
id:
|
|
type: string
|
|
operation:
|
|
description: operation [pin unpin hide show]
|
|
type: string
|
|
required:
|
|
- id
|
|
type: object
|
|
schema.PermissionMemberAction:
|
|
properties:
|
|
action:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type:
|
|
type: string
|
|
type: object
|
|
schema.PostRenderReq:
|
|
properties:
|
|
content:
|
|
type: string
|
|
type: object
|
|
schema.PrivilegeLevel:
|
|
enum:
|
|
- 1
|
|
- 2
|
|
- 3
|
|
- 99
|
|
type: integer
|
|
x-enum-varnames:
|
|
- PrivilegeLevel1
|
|
- PrivilegeLevel2
|
|
- PrivilegeLevel3
|
|
- PrivilegeLevelCustom
|
|
schema.PrivilegeOption:
|
|
properties:
|
|
level:
|
|
$ref: '#/definitions/schema.PrivilegeLevel'
|
|
level_desc:
|
|
type: string
|
|
privileges:
|
|
items:
|
|
$ref: '#/definitions/constant.Privilege'
|
|
type: array
|
|
type: object
|
|
schema.QuestionAdd:
|
|
properties:
|
|
captcha_code:
|
|
type: string
|
|
captcha_id:
|
|
description: captcha_id
|
|
type: string
|
|
content:
|
|
description: content
|
|
maxLength: 65535
|
|
minLength: 0
|
|
type: string
|
|
tags:
|
|
description: tags
|
|
items:
|
|
$ref: '#/definitions/schema.TagItem'
|
|
type: array
|
|
title:
|
|
description: question title
|
|
maxLength: 150
|
|
minLength: 6
|
|
type: string
|
|
required:
|
|
- title
|
|
type: object
|
|
schema.QuestionAddByAnswer:
|
|
properties:
|
|
answer_content:
|
|
maxLength: 65535
|
|
minLength: 6
|
|
type: string
|
|
captcha_code:
|
|
type: string
|
|
captcha_id:
|
|
description: captcha_id
|
|
type: string
|
|
content:
|
|
description: content
|
|
maxLength: 65535
|
|
minLength: 0
|
|
type: string
|
|
mention_username_list:
|
|
items:
|
|
type: string
|
|
type: array
|
|
tags:
|
|
description: tags
|
|
items:
|
|
$ref: '#/definitions/schema.TagItem'
|
|
type: array
|
|
title:
|
|
description: question title
|
|
maxLength: 150
|
|
minLength: 6
|
|
type: string
|
|
required:
|
|
- answer_content
|
|
- title
|
|
type: object
|
|
schema.QuestionInfoResp:
|
|
properties:
|
|
accepted_answer_id:
|
|
type: string
|
|
answer_count:
|
|
type: integer
|
|
answered:
|
|
type: boolean
|
|
collected:
|
|
type: boolean
|
|
collection_count:
|
|
type: integer
|
|
content:
|
|
type: string
|
|
create_time:
|
|
type: integer
|
|
description:
|
|
type: string
|
|
edit_time:
|
|
type: integer
|
|
extends_actions:
|
|
items:
|
|
$ref: '#/definitions/schema.PermissionMemberAction'
|
|
type: array
|
|
first_answer_id:
|
|
type: string
|
|
follow_count:
|
|
type: integer
|
|
html:
|
|
type: string
|
|
id:
|
|
type: string
|
|
is_followed:
|
|
type: boolean
|
|
last_answer_id:
|
|
type: string
|
|
last_answered_user_info:
|
|
$ref: '#/definitions/schema.UserBasicInfo'
|
|
member_actions:
|
|
description: MemberActions
|
|
items:
|
|
$ref: '#/definitions/schema.PermissionMemberAction'
|
|
type: array
|
|
operation:
|
|
$ref: '#/definitions/schema.Operation'
|
|
pin:
|
|
type: integer
|
|
show:
|
|
type: integer
|
|
status:
|
|
type: integer
|
|
tags:
|
|
items:
|
|
$ref: '#/definitions/schema.TagResp'
|
|
type: array
|
|
title:
|
|
type: string
|
|
unique_view_count:
|
|
type: integer
|
|
update_time:
|
|
type: integer
|
|
update_user_info:
|
|
$ref: '#/definitions/schema.UserBasicInfo'
|
|
url_title:
|
|
type: string
|
|
user_info:
|
|
$ref: '#/definitions/schema.UserBasicInfo'
|
|
view_count:
|
|
type: integer
|
|
vote_count:
|
|
type: integer
|
|
vote_status:
|
|
type: string
|
|
type: object
|
|
schema.QuestionPageReq:
|
|
properties:
|
|
in_days:
|
|
minimum: 1
|
|
type: integer
|
|
order:
|
|
enum:
|
|
- newest
|
|
- active
|
|
- hot
|
|
- score
|
|
- unanswered
|
|
- recommend
|
|
- frequent
|
|
type: string
|
|
page:
|
|
minimum: 1
|
|
type: integer
|
|
page_size:
|
|
minimum: 1
|
|
type: integer
|
|
tag:
|
|
maxLength: 100
|
|
type: string
|
|
username:
|
|
maxLength: 100
|
|
type: string
|
|
type: object
|
|
schema.QuestionPageResp:
|
|
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:
|
|
items:
|
|
$ref: '#/definitions/schema.TagResp'
|
|
type: array
|
|
title:
|
|
type: string
|
|
unique_view_count:
|
|
type: integer
|
|
url_title:
|
|
type: string
|
|
view_count:
|
|
description: question statistical information
|
|
type: integer
|
|
vote_count:
|
|
type: integer
|
|
type: object
|
|
schema.QuestionPageRespOperator:
|
|
properties:
|
|
avatar:
|
|
type: string
|
|
display_name:
|
|
type: string
|
|
id:
|
|
type: string
|
|
rank:
|
|
type: integer
|
|
status:
|
|
type: string
|
|
username:
|
|
type: string
|
|
type: object
|
|
schema.QuestionRecoverReq:
|
|
properties:
|
|
question_id:
|
|
type: string
|
|
required:
|
|
- question_id
|
|
type: object
|
|
schema.QuestionUpdate:
|
|
properties:
|
|
captcha_code:
|
|
type: string
|
|
captcha_id:
|
|
description: captcha_id
|
|
type: string
|
|
content:
|
|
description: content
|
|
maxLength: 65535
|
|
minLength: 0
|
|
type: string
|
|
edit_summary:
|
|
description: edit summary
|
|
type: string
|
|
id:
|
|
description: question id
|
|
type: string
|
|
invite_user:
|
|
items:
|
|
type: string
|
|
type: array
|
|
tags:
|
|
description: tags
|
|
items:
|
|
$ref: '#/definitions/schema.TagItem'
|
|
type: array
|
|
title:
|
|
description: question title
|
|
maxLength: 150
|
|
minLength: 6
|
|
type: string
|
|
required:
|
|
- id
|
|
- title
|
|
type: object
|
|
schema.QuestionUpdateInviteUser:
|
|
properties:
|
|
captcha_code:
|
|
type: string
|
|
captcha_id:
|
|
description: captcha_id
|
|
type: string
|
|
id:
|
|
type: string
|
|
invite_user:
|
|
items:
|
|
type: string
|
|
type: array
|
|
required:
|
|
- id
|
|
type: object
|
|
schema.ReactionRespItem:
|
|
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
|
|
type: object
|
|
schema.ReasonItem:
|
|
properties:
|
|
content_type:
|
|
type: string
|
|
description:
|
|
type: string
|
|
name:
|
|
type: string
|
|
placeholder:
|
|
type: string
|
|
reason_key:
|
|
type: string
|
|
reason_type:
|
|
type: integer
|
|
type: object
|
|
schema.RecoverAnswerReq:
|
|
properties:
|
|
answer_id:
|
|
type: string
|
|
required:
|
|
- answer_id
|
|
type: object
|
|
schema.RecoverTagReq:
|
|
properties:
|
|
tag_id:
|
|
type: string
|
|
required:
|
|
- tag_id
|
|
type: object
|
|
schema.RemoveAnswerReq:
|
|
properties:
|
|
captcha_code:
|
|
type: string
|
|
captcha_id:
|
|
type: string
|
|
id:
|
|
type: string
|
|
required:
|
|
- id
|
|
type: object
|
|
schema.RemoveCommentReq:
|
|
properties:
|
|
captcha_code:
|
|
type: string
|
|
captcha_id:
|
|
type: string
|
|
comment_id:
|
|
description: comment id
|
|
type: string
|
|
required:
|
|
- comment_id
|
|
type: object
|
|
schema.RemoveQuestionReq:
|
|
properties:
|
|
captcha_code:
|
|
type: string
|
|
captcha_id:
|
|
description: captcha_id
|
|
type: string
|
|
id:
|
|
description: question id
|
|
type: string
|
|
required:
|
|
- id
|
|
type: object
|
|
schema.RemoveTagReq:
|
|
properties:
|
|
tag_id:
|
|
description: tag_id
|
|
type: string
|
|
required:
|
|
- tag_id
|
|
type: object
|
|
schema.ReopenQuestionReq:
|
|
properties:
|
|
question_id:
|
|
type: string
|
|
type: object
|
|
schema.ReviewReportReq:
|
|
properties:
|
|
close_msg:
|
|
type: string
|
|
close_type:
|
|
type: integer
|
|
content:
|
|
maxLength: 65535
|
|
minLength: 6
|
|
type: string
|
|
flag_id:
|
|
type: string
|
|
operation_type:
|
|
enum:
|
|
- edit_post
|
|
- close_post
|
|
- delete_post
|
|
- unlist_post
|
|
- ignore_report
|
|
type: string
|
|
tags:
|
|
items:
|
|
$ref: '#/definitions/schema.TagItem'
|
|
type: array
|
|
title:
|
|
maxLength: 150
|
|
minLength: 6
|
|
type: string
|
|
required:
|
|
- flag_id
|
|
- operation_type
|
|
type: object
|
|
schema.RevisionAuditReq:
|
|
properties:
|
|
id:
|
|
description: object id
|
|
type: string
|
|
operation:
|
|
description: approve or reject
|
|
type: string
|
|
required:
|
|
- id
|
|
- operation
|
|
type: object
|
|
schema.SearchObject:
|
|
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
|
|
items:
|
|
$ref: '#/definitions/schema.TagResp'
|
|
type: array
|
|
title:
|
|
type: string
|
|
url_title:
|
|
type: string
|
|
user_info:
|
|
allOf:
|
|
- $ref: '#/definitions/schema.SearchObjectUser'
|
|
description: user info
|
|
vote_count:
|
|
type: integer
|
|
type: object
|
|
schema.SearchObjectUser:
|
|
properties:
|
|
display_name:
|
|
type: string
|
|
id:
|
|
type: string
|
|
rank:
|
|
type: integer
|
|
status:
|
|
type: string
|
|
username:
|
|
type: string
|
|
type: object
|
|
schema.SearchResp:
|
|
properties:
|
|
count:
|
|
type: integer
|
|
list:
|
|
description: search response
|
|
items:
|
|
$ref: '#/definitions/schema.SearchResult'
|
|
type: array
|
|
type: object
|
|
schema.SearchResult:
|
|
properties:
|
|
object:
|
|
allOf:
|
|
- $ref: '#/definitions/schema.SearchObject'
|
|
description: this object
|
|
object_type:
|
|
description: object_type
|
|
type: string
|
|
type: object
|
|
schema.SendUserActivationReq:
|
|
properties:
|
|
user_id:
|
|
type: string
|
|
required:
|
|
- user_id
|
|
type: object
|
|
schema.SiteAIProvider:
|
|
properties:
|
|
api_host:
|
|
maxLength: 512
|
|
type: string
|
|
api_key:
|
|
maxLength: 256
|
|
type: string
|
|
model:
|
|
maxLength: 100
|
|
type: string
|
|
provider:
|
|
maxLength: 50
|
|
type: string
|
|
type: object
|
|
schema.SiteAIReq:
|
|
properties:
|
|
ai_providers:
|
|
items:
|
|
$ref: '#/definitions/schema.SiteAIProvider'
|
|
type: array
|
|
chosen_provider:
|
|
maxLength: 50
|
|
type: string
|
|
enabled:
|
|
type: boolean
|
|
prompt_config:
|
|
$ref: '#/definitions/schema.AIPromptConfig'
|
|
type: object
|
|
schema.SiteAIResp:
|
|
properties:
|
|
ai_providers:
|
|
items:
|
|
$ref: '#/definitions/schema.SiteAIProvider'
|
|
type: array
|
|
chosen_provider:
|
|
maxLength: 50
|
|
type: string
|
|
enabled:
|
|
type: boolean
|
|
prompt_config:
|
|
$ref: '#/definitions/schema.AIPromptConfig'
|
|
type: object
|
|
schema.SiteAdvancedReq:
|
|
properties:
|
|
authorized_attachment_extensions:
|
|
items:
|
|
type: string
|
|
type: array
|
|
authorized_image_extensions:
|
|
items:
|
|
type: string
|
|
type: array
|
|
max_attachment_size:
|
|
type: integer
|
|
max_image_megapixel:
|
|
type: integer
|
|
max_image_size:
|
|
type: integer
|
|
type: object
|
|
schema.SiteAdvancedResp:
|
|
properties:
|
|
authorized_attachment_extensions:
|
|
items:
|
|
type: string
|
|
type: array
|
|
authorized_image_extensions:
|
|
items:
|
|
type: string
|
|
type: array
|
|
max_attachment_size:
|
|
type: integer
|
|
max_image_megapixel:
|
|
type: integer
|
|
max_image_size:
|
|
type: integer
|
|
type: object
|
|
schema.SiteBrandingReq:
|
|
properties:
|
|
favicon:
|
|
maxLength: 512
|
|
type: string
|
|
logo:
|
|
maxLength: 512
|
|
type: string
|
|
mobile_logo:
|
|
maxLength: 512
|
|
type: string
|
|
square_icon:
|
|
maxLength: 512
|
|
type: string
|
|
type: object
|
|
schema.SiteBrandingResp:
|
|
properties:
|
|
favicon:
|
|
maxLength: 512
|
|
type: string
|
|
logo:
|
|
maxLength: 512
|
|
type: string
|
|
mobile_logo:
|
|
maxLength: 512
|
|
type: string
|
|
square_icon:
|
|
maxLength: 512
|
|
type: string
|
|
type: object
|
|
schema.SiteCustomCssHTMLReq:
|
|
properties:
|
|
custom_css:
|
|
maxLength: 65536
|
|
type: string
|
|
custom_footer:
|
|
maxLength: 65536
|
|
type: string
|
|
custom_head:
|
|
maxLength: 65536
|
|
type: string
|
|
custom_header:
|
|
maxLength: 65536
|
|
type: string
|
|
custom_sidebar:
|
|
maxLength: 65536
|
|
type: string
|
|
type: object
|
|
schema.SiteCustomCssHTMLResp:
|
|
properties:
|
|
custom_css:
|
|
maxLength: 65536
|
|
type: string
|
|
custom_footer:
|
|
maxLength: 65536
|
|
type: string
|
|
custom_head:
|
|
maxLength: 65536
|
|
type: string
|
|
custom_header:
|
|
maxLength: 65536
|
|
type: string
|
|
custom_sidebar:
|
|
maxLength: 65536
|
|
type: string
|
|
type: object
|
|
schema.SiteGeneralReq:
|
|
properties:
|
|
contact_email:
|
|
maxLength: 512
|
|
type: string
|
|
description:
|
|
maxLength: 2000
|
|
type: string
|
|
name:
|
|
maxLength: 128
|
|
type: string
|
|
short_description:
|
|
maxLength: 255
|
|
type: string
|
|
site_url:
|
|
maxLength: 512
|
|
type: string
|
|
required:
|
|
- contact_email
|
|
- name
|
|
- site_url
|
|
type: object
|
|
schema.SiteGeneralResp:
|
|
properties:
|
|
contact_email:
|
|
maxLength: 512
|
|
type: string
|
|
description:
|
|
maxLength: 2000
|
|
type: string
|
|
name:
|
|
maxLength: 128
|
|
type: string
|
|
short_description:
|
|
maxLength: 255
|
|
type: string
|
|
site_url:
|
|
maxLength: 512
|
|
type: string
|
|
required:
|
|
- contact_email
|
|
- name
|
|
- site_url
|
|
type: object
|
|
schema.SiteInfoResp:
|
|
properties:
|
|
ai_enabled:
|
|
type: boolean
|
|
branding:
|
|
$ref: '#/definitions/schema.SiteBrandingResp'
|
|
custom_css_html:
|
|
$ref: '#/definitions/schema.SiteCustomCssHTMLResp'
|
|
general:
|
|
$ref: '#/definitions/schema.SiteGeneralResp'
|
|
interface:
|
|
$ref: '#/definitions/schema.SiteInterfaceSettingsResp'
|
|
login:
|
|
$ref: '#/definitions/schema.SiteLoginResp'
|
|
mcp_enabled:
|
|
type: boolean
|
|
revision:
|
|
type: string
|
|
site_advanced:
|
|
$ref: '#/definitions/schema.SiteAdvancedResp'
|
|
site_legal:
|
|
$ref: '#/definitions/schema.SiteLegalSimpleResp'
|
|
site_questions:
|
|
$ref: '#/definitions/schema.SiteQuestionsResp'
|
|
site_security:
|
|
$ref: '#/definitions/schema.SiteSecurityResp'
|
|
site_seo:
|
|
$ref: '#/definitions/schema.SiteSeoResp'
|
|
site_tags:
|
|
$ref: '#/definitions/schema.SiteTagsResp'
|
|
site_users:
|
|
$ref: '#/definitions/schema.SiteUsersResp'
|
|
theme:
|
|
$ref: '#/definitions/schema.SiteThemeResp'
|
|
users_settings:
|
|
$ref: '#/definitions/schema.SiteUsersSettingsResp'
|
|
version:
|
|
type: string
|
|
type: object
|
|
schema.SiteInterfaceReq:
|
|
properties:
|
|
language:
|
|
maxLength: 128
|
|
type: string
|
|
time_zone:
|
|
maxLength: 128
|
|
type: string
|
|
required:
|
|
- language
|
|
- time_zone
|
|
type: object
|
|
schema.SiteInterfaceSettingsResp:
|
|
properties:
|
|
language:
|
|
maxLength: 128
|
|
type: string
|
|
time_zone:
|
|
maxLength: 128
|
|
type: string
|
|
required:
|
|
- language
|
|
- time_zone
|
|
type: object
|
|
schema.SiteLegalSimpleResp:
|
|
properties:
|
|
external_content_display:
|
|
enum:
|
|
- always_display
|
|
- ask_before_display
|
|
type: string
|
|
required:
|
|
- external_content_display
|
|
type: object
|
|
schema.SiteLoginReq:
|
|
properties:
|
|
allow_email_domains:
|
|
items:
|
|
type: string
|
|
type: array
|
|
allow_email_registrations:
|
|
type: boolean
|
|
allow_new_registrations:
|
|
type: boolean
|
|
allow_password_login:
|
|
type: boolean
|
|
require_email_verification:
|
|
type: boolean
|
|
required:
|
|
- require_email_verification
|
|
type: object
|
|
schema.SiteLoginResp:
|
|
properties:
|
|
allow_email_domains:
|
|
items:
|
|
type: string
|
|
type: array
|
|
allow_email_registrations:
|
|
type: boolean
|
|
allow_new_registrations:
|
|
type: boolean
|
|
allow_password_login:
|
|
type: boolean
|
|
require_email_verification:
|
|
type: boolean
|
|
type: object
|
|
schema.SiteMCPReq:
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
type: object
|
|
schema.SiteMCPResp:
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
http_header:
|
|
type: string
|
|
type:
|
|
type: string
|
|
url:
|
|
type: string
|
|
type: object
|
|
schema.SitePoliciesReq:
|
|
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
|
|
type: object
|
|
schema.SitePoliciesResp:
|
|
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
|
|
type: object
|
|
schema.SiteQuestionsReq:
|
|
properties:
|
|
min_content:
|
|
maximum: 65535
|
|
minimum: 0
|
|
type: integer
|
|
min_tags:
|
|
maximum: 5
|
|
minimum: 0
|
|
type: integer
|
|
restrict_answer:
|
|
type: boolean
|
|
type: object
|
|
schema.SiteQuestionsResp:
|
|
properties:
|
|
min_content:
|
|
maximum: 65535
|
|
minimum: 0
|
|
type: integer
|
|
min_tags:
|
|
maximum: 5
|
|
minimum: 0
|
|
type: integer
|
|
restrict_answer:
|
|
type: boolean
|
|
type: object
|
|
schema.SiteSecurityReq:
|
|
properties:
|
|
check_update:
|
|
type: boolean
|
|
external_content_display:
|
|
enum:
|
|
- always_display
|
|
- ask_before_display
|
|
type: string
|
|
login_required:
|
|
type: boolean
|
|
required:
|
|
- external_content_display
|
|
type: object
|
|
schema.SiteSecurityResp:
|
|
properties:
|
|
check_update:
|
|
type: boolean
|
|
external_content_display:
|
|
enum:
|
|
- always_display
|
|
- ask_before_display
|
|
type: string
|
|
login_required:
|
|
type: boolean
|
|
required:
|
|
- external_content_display
|
|
type: object
|
|
schema.SiteSeoReq:
|
|
properties:
|
|
permalink:
|
|
maximum: 4
|
|
minimum: 0
|
|
type: integer
|
|
robots:
|
|
type: string
|
|
required:
|
|
- permalink
|
|
- robots
|
|
type: object
|
|
schema.SiteSeoResp:
|
|
properties:
|
|
permalink:
|
|
maximum: 4
|
|
minimum: 0
|
|
type: integer
|
|
robots:
|
|
type: string
|
|
required:
|
|
- permalink
|
|
- robots
|
|
type: object
|
|
schema.SiteTagsReq:
|
|
properties:
|
|
recommend_tags:
|
|
items:
|
|
$ref: '#/definitions/schema.SiteWriteTag'
|
|
type: array
|
|
required_tag:
|
|
type: boolean
|
|
reserved_tags:
|
|
items:
|
|
$ref: '#/definitions/schema.SiteWriteTag'
|
|
type: array
|
|
type: object
|
|
schema.SiteTagsResp:
|
|
properties:
|
|
recommend_tags:
|
|
items:
|
|
$ref: '#/definitions/schema.SiteWriteTag'
|
|
type: array
|
|
required_tag:
|
|
type: boolean
|
|
reserved_tags:
|
|
items:
|
|
$ref: '#/definitions/schema.SiteWriteTag'
|
|
type: array
|
|
type: object
|
|
schema.SiteThemeReq:
|
|
properties:
|
|
color_scheme:
|
|
maxLength: 100
|
|
type: string
|
|
layout:
|
|
enum:
|
|
- Full-width
|
|
- Fixed-width
|
|
type: string
|
|
theme:
|
|
maxLength: 255
|
|
type: string
|
|
theme_config:
|
|
additionalProperties: {}
|
|
type: object
|
|
required:
|
|
- theme
|
|
type: object
|
|
schema.SiteThemeResp:
|
|
properties:
|
|
color_scheme:
|
|
type: string
|
|
layout:
|
|
type: string
|
|
theme:
|
|
type: string
|
|
theme_config:
|
|
additionalProperties: {}
|
|
type: object
|
|
theme_options:
|
|
items:
|
|
$ref: '#/definitions/schema.ThemeOption'
|
|
type: array
|
|
type: object
|
|
schema.SiteUsersReq:
|
|
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:
|
|
enum:
|
|
- system
|
|
- gravatar
|
|
type: string
|
|
gravatar_base_url:
|
|
type: string
|
|
required:
|
|
- default_avatar
|
|
type: object
|
|
schema.SiteUsersResp:
|
|
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:
|
|
enum:
|
|
- system
|
|
- gravatar
|
|
type: string
|
|
gravatar_base_url:
|
|
type: string
|
|
required:
|
|
- default_avatar
|
|
type: object
|
|
schema.SiteUsersSettingsReq:
|
|
properties:
|
|
default_avatar:
|
|
enum:
|
|
- system
|
|
- gravatar
|
|
type: string
|
|
gravatar_base_url:
|
|
type: string
|
|
required:
|
|
- default_avatar
|
|
type: object
|
|
schema.SiteUsersSettingsResp:
|
|
properties:
|
|
default_avatar:
|
|
enum:
|
|
- system
|
|
- gravatar
|
|
type: string
|
|
gravatar_base_url:
|
|
type: string
|
|
required:
|
|
- default_avatar
|
|
type: object
|
|
schema.SiteWriteTag:
|
|
properties:
|
|
display_name:
|
|
type: string
|
|
slug_name:
|
|
type: string
|
|
required:
|
|
- slug_name
|
|
type: object
|
|
schema.TagItem:
|
|
properties:
|
|
display_name:
|
|
description: display_name
|
|
maxLength: 35
|
|
type: string
|
|
original_text:
|
|
description: original text
|
|
type: string
|
|
slug_name:
|
|
description: slug_name
|
|
maxLength: 35
|
|
type: string
|
|
type: object
|
|
schema.TagResp:
|
|
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
|
|
type: object
|
|
schema.TagSynonym:
|
|
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
|
|
type: object
|
|
schema.ThemeOption:
|
|
properties:
|
|
label:
|
|
type: string
|
|
value:
|
|
type: string
|
|
type: object
|
|
schema.UIOptionAction:
|
|
properties:
|
|
loading:
|
|
$ref: '#/definitions/schema.LoadingAction'
|
|
method:
|
|
type: string
|
|
on_complete:
|
|
$ref: '#/definitions/schema.OnCompleteAction'
|
|
url:
|
|
type: string
|
|
type: object
|
|
schema.UnreviewedRevisionInfoInfo:
|
|
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:
|
|
items:
|
|
$ref: '#/definitions/schema.TagResp'
|
|
type: array
|
|
title:
|
|
type: string
|
|
url_title:
|
|
type: string
|
|
type: object
|
|
schema.UpdateAPIKeyReq:
|
|
properties:
|
|
description:
|
|
maxLength: 150
|
|
type: string
|
|
id:
|
|
type: integer
|
|
required:
|
|
- description
|
|
- id
|
|
type: object
|
|
schema.UpdateBadgeStatusReq:
|
|
properties:
|
|
id:
|
|
description: badge id
|
|
type: string
|
|
status:
|
|
allOf:
|
|
- $ref: '#/definitions/schema.BadgeStatus'
|
|
description: badge status
|
|
required:
|
|
- id
|
|
- status
|
|
type: object
|
|
schema.UpdateCommentReq:
|
|
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
|
|
maxLength: 600
|
|
minLength: 2
|
|
type: string
|
|
required:
|
|
- comment_id
|
|
- original_text
|
|
type: object
|
|
schema.UpdateFollowTagsReq:
|
|
properties:
|
|
slug_name_list:
|
|
description: tag slug name list
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
schema.UpdateInfoRequest:
|
|
properties:
|
|
avatar:
|
|
$ref: '#/definitions/schema.AvatarInfo'
|
|
bio:
|
|
maxLength: 4096
|
|
type: string
|
|
display_name:
|
|
maxLength: 30
|
|
minLength: 2
|
|
type: string
|
|
location:
|
|
maxLength: 100
|
|
type: string
|
|
username:
|
|
maxLength: 30
|
|
minLength: 2
|
|
type: string
|
|
website:
|
|
maxLength: 500
|
|
type: string
|
|
type: object
|
|
schema.UpdatePluginConfigReq:
|
|
properties:
|
|
config_fields:
|
|
additionalProperties: {}
|
|
type: object
|
|
plugin_slug_name:
|
|
maxLength: 100
|
|
type: string
|
|
required:
|
|
- plugin_slug_name
|
|
type: object
|
|
schema.UpdatePluginStatusReq:
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
plugin_slug_name:
|
|
maxLength: 100
|
|
type: string
|
|
required:
|
|
- plugin_slug_name
|
|
type: object
|
|
schema.UpdatePrivilegesConfigReq:
|
|
properties:
|
|
custom_privileges:
|
|
items:
|
|
$ref: '#/definitions/constant.Privilege'
|
|
type: array
|
|
level:
|
|
allOf:
|
|
- $ref: '#/definitions/schema.PrivilegeLevel'
|
|
minimum: 1
|
|
required:
|
|
- level
|
|
type: object
|
|
schema.UpdateReactionReq:
|
|
properties:
|
|
emoji:
|
|
enum:
|
|
- heart
|
|
- smile
|
|
- frown
|
|
type: string
|
|
object_id:
|
|
type: string
|
|
reaction:
|
|
enum:
|
|
- activate
|
|
- deactivate
|
|
type: string
|
|
required:
|
|
- emoji
|
|
- object_id
|
|
- reaction
|
|
type: object
|
|
schema.UpdateReviewReq:
|
|
properties:
|
|
review_id:
|
|
type: integer
|
|
status:
|
|
enum:
|
|
- approve
|
|
- reject
|
|
type: string
|
|
required:
|
|
- review_id
|
|
- status
|
|
type: object
|
|
schema.UpdateSMTPConfigReq:
|
|
properties:
|
|
encryption:
|
|
description: '"" SSL TLS'
|
|
enum:
|
|
- SSL
|
|
- TLS
|
|
type: string
|
|
from_email:
|
|
maxLength: 256
|
|
type: string
|
|
from_name:
|
|
maxLength: 256
|
|
type: string
|
|
smtp_authentication:
|
|
type: boolean
|
|
smtp_host:
|
|
maxLength: 256
|
|
type: string
|
|
smtp_password:
|
|
maxLength: 256
|
|
type: string
|
|
smtp_port:
|
|
maximum: 65535
|
|
minimum: 1
|
|
type: integer
|
|
smtp_username:
|
|
maxLength: 256
|
|
type: string
|
|
test_email_recipient:
|
|
type: string
|
|
type: object
|
|
schema.UpdateTagReq:
|
|
properties:
|
|
display_name:
|
|
description: display_name
|
|
maxLength: 35
|
|
type: string
|
|
edit_summary:
|
|
description: edit summary
|
|
type: string
|
|
original_text:
|
|
description: original text
|
|
type: string
|
|
slug_name:
|
|
description: slug_name
|
|
maxLength: 35
|
|
type: string
|
|
tag_id:
|
|
description: tag_id
|
|
type: string
|
|
required:
|
|
- tag_id
|
|
type: object
|
|
schema.UpdateTagSynonymReq:
|
|
properties:
|
|
synonym_tag_list:
|
|
description: synonym tag list
|
|
items:
|
|
$ref: '#/definitions/schema.TagItem'
|
|
type: array
|
|
tag_id:
|
|
description: tag_id
|
|
type: string
|
|
required:
|
|
- synonym_tag_list
|
|
- tag_id
|
|
type: object
|
|
schema.UpdateUserInterfaceRequest:
|
|
properties:
|
|
color_scheme:
|
|
description: Color scheme
|
|
maxLength: 100
|
|
type: string
|
|
language:
|
|
description: language
|
|
maxLength: 100
|
|
type: string
|
|
required:
|
|
- color_scheme
|
|
- language
|
|
type: object
|
|
schema.UpdateUserNotificationConfigReq:
|
|
properties:
|
|
all_new_question:
|
|
$ref: '#/definitions/schema.NotificationChannelConfig'
|
|
all_new_question_for_following_tags:
|
|
$ref: '#/definitions/schema.NotificationChannelConfig'
|
|
inbox:
|
|
$ref: '#/definitions/schema.NotificationChannelConfig'
|
|
type: object
|
|
schema.UpdateUserPasswordReq:
|
|
properties:
|
|
password:
|
|
maxLength: 32
|
|
minLength: 8
|
|
type: string
|
|
user_id:
|
|
type: string
|
|
required:
|
|
- password
|
|
- user_id
|
|
type: object
|
|
schema.UpdateUserPluginConfigReq:
|
|
properties:
|
|
config_fields:
|
|
additionalProperties: {}
|
|
type: object
|
|
plugin_slug_name:
|
|
maxLength: 100
|
|
type: string
|
|
required:
|
|
- plugin_slug_name
|
|
type: object
|
|
schema.UpdateUserRoleReq:
|
|
properties:
|
|
role_id:
|
|
description: role id
|
|
type: integer
|
|
user_id:
|
|
description: user id
|
|
type: string
|
|
required:
|
|
- role_id
|
|
- user_id
|
|
type: object
|
|
schema.UpdateUserStatusReq:
|
|
properties:
|
|
remove_all_content:
|
|
type: boolean
|
|
status:
|
|
enum:
|
|
- normal
|
|
- suspended
|
|
- deleted
|
|
- inactive
|
|
type: string
|
|
suspend_duration:
|
|
enum:
|
|
- 24h
|
|
- 48h
|
|
- 72h
|
|
- 7d
|
|
- 14d
|
|
- 1m
|
|
- 2m
|
|
- 3m
|
|
- 6m
|
|
- 1y
|
|
- forever
|
|
type: string
|
|
user_id:
|
|
type: string
|
|
required:
|
|
- status
|
|
- user_id
|
|
type: object
|
|
schema.UserBasicInfo:
|
|
properties:
|
|
avatar:
|
|
type: string
|
|
display_name:
|
|
type: string
|
|
id:
|
|
type: string
|
|
language:
|
|
type: string
|
|
location:
|
|
type: string
|
|
rank:
|
|
type: integer
|
|
status:
|
|
type: string
|
|
suspended_until:
|
|
type: integer
|
|
username:
|
|
type: string
|
|
website:
|
|
type: string
|
|
type: object
|
|
schema.UserChangeEmailSendCodeReq:
|
|
properties:
|
|
captcha_code:
|
|
type: string
|
|
captcha_id:
|
|
type: string
|
|
e_mail:
|
|
maxLength: 500
|
|
type: string
|
|
pass:
|
|
maxLength: 32
|
|
minLength: 8
|
|
type: string
|
|
required:
|
|
- e_mail
|
|
type: object
|
|
schema.UserChangeEmailVerifyReq:
|
|
properties:
|
|
code:
|
|
maxLength: 500
|
|
type: string
|
|
required:
|
|
- code
|
|
type: object
|
|
schema.UserEmailLoginReq:
|
|
properties:
|
|
captcha_code:
|
|
type: string
|
|
captcha_id:
|
|
type: string
|
|
e_mail:
|
|
maxLength: 500
|
|
type: string
|
|
pass:
|
|
maxLength: 32
|
|
minLength: 8
|
|
type: string
|
|
required:
|
|
- e_mail
|
|
- pass
|
|
type: object
|
|
schema.UserLoginResp:
|
|
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
|
|
suspended_until:
|
|
description: suspended until timestamp
|
|
type: integer
|
|
username:
|
|
description: username
|
|
type: string
|
|
visit_token:
|
|
description: visit token
|
|
type: string
|
|
website:
|
|
description: website
|
|
type: string
|
|
type: object
|
|
schema.UserModifyPasswordReq:
|
|
properties:
|
|
captcha_code:
|
|
type: string
|
|
captcha_id:
|
|
type: string
|
|
old_pass:
|
|
maxLength: 32
|
|
minLength: 8
|
|
type: string
|
|
pass:
|
|
maxLength: 32
|
|
minLength: 8
|
|
type: string
|
|
required:
|
|
- pass
|
|
type: object
|
|
schema.UserRankingResp:
|
|
properties:
|
|
staffs:
|
|
items:
|
|
$ref: '#/definitions/schema.UserRankingSimpleInfo'
|
|
type: array
|
|
users_with_the_most_reputation:
|
|
items:
|
|
$ref: '#/definitions/schema.UserRankingSimpleInfo'
|
|
type: array
|
|
users_with_the_most_vote:
|
|
items:
|
|
$ref: '#/definitions/schema.UserRankingSimpleInfo'
|
|
type: array
|
|
type: object
|
|
schema.UserRankingSimpleInfo:
|
|
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
|
|
type: object
|
|
schema.UserRePassWordRequest:
|
|
properties:
|
|
code:
|
|
maxLength: 100
|
|
type: string
|
|
pass:
|
|
maxLength: 32
|
|
type: string
|
|
required:
|
|
- code
|
|
- pass
|
|
type: object
|
|
schema.UserRegisterReq:
|
|
properties:
|
|
captcha_code:
|
|
type: string
|
|
captcha_id:
|
|
type: string
|
|
e_mail:
|
|
maxLength: 500
|
|
type: string
|
|
name:
|
|
maxLength: 30
|
|
minLength: 2
|
|
type: string
|
|
pass:
|
|
maxLength: 32
|
|
minLength: 8
|
|
type: string
|
|
required:
|
|
- e_mail
|
|
- name
|
|
- pass
|
|
type: object
|
|
schema.UserRetrievePassWordRequest:
|
|
properties:
|
|
captcha_code:
|
|
type: string
|
|
captcha_id:
|
|
type: string
|
|
e_mail:
|
|
maxLength: 500
|
|
type: string
|
|
required:
|
|
- e_mail
|
|
type: object
|
|
schema.UserUnsubscribeNotificationReq:
|
|
properties:
|
|
code:
|
|
maxLength: 500
|
|
type: string
|
|
required:
|
|
- code
|
|
type: object
|
|
schema.VoteReq:
|
|
properties:
|
|
captcha_code:
|
|
type: string
|
|
captcha_id:
|
|
type: string
|
|
is_cancel:
|
|
type: boolean
|
|
object_id:
|
|
type: string
|
|
required:
|
|
- object_id
|
|
type: object
|
|
schema.VoteResp:
|
|
properties:
|
|
down_votes:
|
|
type: integer
|
|
up_votes:
|
|
type: integer
|
|
vote_status:
|
|
type: string
|
|
votes:
|
|
type: integer
|
|
type: object
|
|
translator.LangOption:
|
|
properties:
|
|
label:
|
|
type: string
|
|
progress:
|
|
description: Translation completion percentage
|
|
type: integer
|
|
value:
|
|
type: string
|
|
type: object
|
|
info:
|
|
contact: {}
|
|
description: Apache Answer API
|
|
title: Apache Answer
|
|
paths:
|
|
/:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: if config file not exist try to redirect to install page
|
|
produces:
|
|
- application/json
|
|
responses: {}
|
|
summary: if config file not exist try to redirect to install page
|
|
tags:
|
|
- installation
|
|
/answer/admin/api/ai-config:
|
|
get:
|
|
description: get AI configuration
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.SiteAIResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get AI configuration
|
|
tags:
|
|
- admin
|
|
put:
|
|
description: update AI configuration
|
|
parameters:
|
|
- description: AI config
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.SiteAIReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update AI configuration
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/ai-models:
|
|
post:
|
|
description: get AI models
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/schema.GetAIModelResp'
|
|
type: array
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get AI models
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/ai-provider:
|
|
get:
|
|
description: get AI provider configuration
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/schema.GetAIProviderResp'
|
|
type: array
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get AI provider configuration
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/ai/conversation:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: delete conversation and its related records for admin
|
|
parameters:
|
|
- description: apikey
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.AIConversationAdminDeleteReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
summary: delete conversation for admin
|
|
tags:
|
|
- ai-conversation-admin
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get conversation detail for admin
|
|
parameters:
|
|
- description: conversation id
|
|
in: query
|
|
name: conversation_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.AIConversationAdminDetailResp'
|
|
type: object
|
|
summary: get conversation detail for admin
|
|
tags:
|
|
- ai-conversation-admin
|
|
/answer/admin/api/ai/conversation/page:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get conversation list for admin
|
|
parameters:
|
|
- description: page
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: page size
|
|
in: query
|
|
name: page_size
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
allOf:
|
|
- $ref: '#/definitions/pager.PageModel'
|
|
- properties:
|
|
list:
|
|
items:
|
|
$ref: '#/definitions/schema.AIConversationAdminListItem'
|
|
type: array
|
|
type: object
|
|
type: object
|
|
summary: get conversation list for admin
|
|
tags:
|
|
- ai-conversation-admin
|
|
/answer/admin/api/answer/page:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Status:[available,deleted,pending]
|
|
parameters:
|
|
- description: page size
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: page size
|
|
in: query
|
|
name: page_size
|
|
type: integer
|
|
- description: user status
|
|
enum:
|
|
- available
|
|
- deleted
|
|
- pending
|
|
in: query
|
|
name: status
|
|
type: string
|
|
- description: answer id or question title
|
|
in: query
|
|
name: query
|
|
type: string
|
|
- description: question id
|
|
in: query
|
|
name: question_id
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: AdminAnswerPage admin answer page
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/answer/status:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: update answer status
|
|
parameters:
|
|
- description: AdminUpdateAnswerStatusReq
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.AdminUpdateAnswerStatusReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update answer status
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/api-key:
|
|
delete:
|
|
description: delete apikey
|
|
parameters:
|
|
- description: apikey
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.DeleteAPIKeyReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: delete apikey
|
|
tags:
|
|
- admin
|
|
post:
|
|
description: add apikey
|
|
parameters:
|
|
- description: apikey
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.AddAPIKeyReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.AddAPIKeyResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: add apikey
|
|
tags:
|
|
- admin
|
|
put:
|
|
description: update apikey
|
|
parameters:
|
|
- description: apikey
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UpdateAPIKeyReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update apikey
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/api-key/all:
|
|
get:
|
|
description: get all api keys
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/schema.GetAPIKeyResp'
|
|
type: array
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get all api keys
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/badge/status:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: update badge status
|
|
parameters:
|
|
- description: UpdateBadgeStatusReq
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UpdateBadgeStatusReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update badge status
|
|
tags:
|
|
- AdminBadge
|
|
/answer/admin/api/badges:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: list all badges by page
|
|
parameters:
|
|
- description: page
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: page size
|
|
in: query
|
|
name: page_size
|
|
type: integer
|
|
- description: badge status
|
|
enum:
|
|
- ""
|
|
- active
|
|
- inactive
|
|
in: query
|
|
name: status
|
|
type: string
|
|
- description: search param
|
|
in: query
|
|
name: q
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/schema.GetBadgeListPagedResp'
|
|
type: array
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: list all badges by page
|
|
tags:
|
|
- AdminBadge
|
|
/answer/admin/api/dashboard:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: DashboardInfo
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: DashboardInfo
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/delete/permanently:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: delete permanently
|
|
parameters:
|
|
- description: DeletePermanentlyReq
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.DeletePermanentlyReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: delete permanently
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/language/options:
|
|
get:
|
|
description: Get language options
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get language options
|
|
tags:
|
|
- Lang
|
|
/answer/admin/api/mcp-config:
|
|
get:
|
|
description: get MCP configuration
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.SiteMCPResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get MCP configuration
|
|
tags:
|
|
- admin
|
|
put:
|
|
description: update MCP configuration
|
|
parameters:
|
|
- description: MCP config
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.SiteMCPReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update MCP configuration
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/plugin/config:
|
|
get:
|
|
description: get plugin config
|
|
parameters:
|
|
- description: plugin_slug_name
|
|
in: query
|
|
name: plugin_slug_name
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.GetPluginConfigResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get plugin config
|
|
tags:
|
|
- AdminPlugin
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: update plugin config
|
|
parameters:
|
|
- description: UpdatePluginConfigReq
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UpdatePluginConfigReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update plugin config
|
|
tags:
|
|
- AdminPlugin
|
|
/answer/admin/api/plugin/status:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: update plugin status
|
|
parameters:
|
|
- description: UpdatePluginStatusReq
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UpdatePluginStatusReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update plugin status
|
|
tags:
|
|
- AdminPlugin
|
|
/answer/admin/api/plugins:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get plugin list
|
|
parameters:
|
|
- description: 'status: active/inactive'
|
|
in: query
|
|
name: status
|
|
type: string
|
|
- description: have config
|
|
in: query
|
|
name: have_config
|
|
type: boolean
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/schema.GetPluginListResp'
|
|
type: array
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get plugin list
|
|
tags:
|
|
- AdminPlugin
|
|
/answer/admin/api/question/page:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Status:[available,closed,deleted,pending]
|
|
parameters:
|
|
- description: page size
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: page size
|
|
in: query
|
|
name: page_size
|
|
type: integer
|
|
- description: user status
|
|
enum:
|
|
- available
|
|
- closed
|
|
- deleted
|
|
- pending
|
|
in: query
|
|
name: status
|
|
type: string
|
|
- description: question id or title
|
|
in: query
|
|
name: query
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: AdminQuestionPage admin question page
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/question/status:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: update question status
|
|
parameters:
|
|
- description: AdminUpdateQuestionStatusReq
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.AdminUpdateQuestionStatusReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update question status
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/reasons:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get reasons by object type and action
|
|
parameters:
|
|
- description: object_type
|
|
enum:
|
|
- question
|
|
- answer
|
|
- comment
|
|
- user
|
|
in: query
|
|
name: object_type
|
|
required: true
|
|
type: string
|
|
- description: action
|
|
enum:
|
|
- status
|
|
- close
|
|
- flag
|
|
- review
|
|
in: query
|
|
name: action
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get reasons by object type and action
|
|
tags:
|
|
- reason
|
|
/answer/admin/api/roles:
|
|
get:
|
|
description: get role list
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/schema.GetRoleResp'
|
|
type: array
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get role list
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/setting/privileges:
|
|
get:
|
|
description: GetPrivilegesConfig get privileges config
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.GetPrivilegesConfigResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: GetPrivilegesConfig get privileges config
|
|
tags:
|
|
- admin
|
|
put:
|
|
description: update privileges config
|
|
parameters:
|
|
- description: config
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UpdatePrivilegesConfigReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update privileges config
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/setting/smtp:
|
|
get:
|
|
description: GetSMTPConfig get smtp config
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.GetSMTPConfigResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: GetSMTPConfig get smtp config
|
|
tags:
|
|
- admin
|
|
put:
|
|
description: update smtp config
|
|
parameters:
|
|
- description: smtp config
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UpdateSMTPConfigReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update smtp config
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/siteinfo/advanced:
|
|
get:
|
|
description: get site advanced setting
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.SiteAdvancedResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get site advanced setting
|
|
tags:
|
|
- admin
|
|
put:
|
|
description: update site advanced info
|
|
parameters:
|
|
- description: advanced settings
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.SiteAdvancedReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update site advanced info
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/siteinfo/branding:
|
|
get:
|
|
description: get site interface
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.SiteBrandingResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get site interface
|
|
tags:
|
|
- admin
|
|
put:
|
|
description: update site info branding
|
|
parameters:
|
|
- description: branding info
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.SiteBrandingReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update site info branding
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/siteinfo/custom-css-html:
|
|
get:
|
|
description: get site info custom html css config
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.SiteCustomCssHTMLResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get site info custom html css config
|
|
tags:
|
|
- admin
|
|
put:
|
|
description: update site custom css html config
|
|
parameters:
|
|
- description: login info
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.SiteCustomCssHTMLReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update site custom css html config
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/siteinfo/general:
|
|
get:
|
|
description: get site general information
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.SiteGeneralResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get site general information
|
|
tags:
|
|
- admin
|
|
put:
|
|
description: update site general information
|
|
parameters:
|
|
- description: general
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.SiteGeneralReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update site general information
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/siteinfo/interface:
|
|
get:
|
|
description: get site interface
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.SiteInterfaceSettingsResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get site interface
|
|
tags:
|
|
- admin
|
|
put:
|
|
description: update site info interface
|
|
parameters:
|
|
- description: general
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.SiteInterfaceReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update site info interface
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/siteinfo/login:
|
|
get:
|
|
description: get site info login config
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.SiteLoginResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get site info login config
|
|
tags:
|
|
- admin
|
|
put:
|
|
description: update site login
|
|
parameters:
|
|
- description: login info
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.SiteLoginReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update site login
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/siteinfo/polices:
|
|
get:
|
|
description: Get the policies information for the site
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.SitePoliciesResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get the policies information for the site
|
|
tags:
|
|
- admin
|
|
put:
|
|
description: update site policies configuration
|
|
parameters:
|
|
- description: write info
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.SitePoliciesReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update site policies configuration
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/siteinfo/question:
|
|
get:
|
|
description: get site questions setting
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.SiteQuestionsResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get site questions setting
|
|
tags:
|
|
- admin
|
|
put:
|
|
description: update site question settings
|
|
parameters:
|
|
- description: questions settings
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.SiteQuestionsReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update site question settings
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/siteinfo/security:
|
|
get:
|
|
description: Get the security information for the site
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.SiteSecurityResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get the security information for the site
|
|
tags:
|
|
- admin
|
|
put:
|
|
description: update site security configuration
|
|
parameters:
|
|
- description: write info
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.SiteSecurityReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update site security configuration
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/siteinfo/seo:
|
|
get:
|
|
description: get site seo information
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.SiteSeoResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get site seo information
|
|
tags:
|
|
- admin
|
|
put:
|
|
description: update site seo information
|
|
parameters:
|
|
- description: seo
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.SiteSeoReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update site seo information
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/siteinfo/tag:
|
|
get:
|
|
description: get site tags setting
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.SiteTagsResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get site tags setting
|
|
tags:
|
|
- admin
|
|
put:
|
|
description: update site tag settings
|
|
parameters:
|
|
- description: tags settings
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.SiteTagsReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update site tag settings
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/siteinfo/theme:
|
|
get:
|
|
description: get site info theme config
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.SiteThemeResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get site info theme config
|
|
tags:
|
|
- admin
|
|
put:
|
|
description: update site custom css html config
|
|
parameters:
|
|
- description: login info
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.SiteThemeReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update site custom css html config
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/siteinfo/users:
|
|
get:
|
|
description: get site user config
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.SiteUsersResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get site user config
|
|
tags:
|
|
- admin
|
|
put:
|
|
description: update site info config about users
|
|
parameters:
|
|
- description: users info
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.SiteUsersReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update site info config about users
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/siteinfo/users-settings:
|
|
get:
|
|
description: get site interface
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.SiteUsersSettingsResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get site interface
|
|
tags:
|
|
- admin
|
|
put:
|
|
description: update site info users settings
|
|
parameters:
|
|
- description: general
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.SiteUsersSettingsReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update site info users settings
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/theme/options:
|
|
get:
|
|
description: Get theme options
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get theme options
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/user:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: add user
|
|
parameters:
|
|
- description: user
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.AddUserReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: add user
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/user/activation:
|
|
get:
|
|
description: get user activation
|
|
parameters:
|
|
- description: user id
|
|
in: query
|
|
name: user_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.GetUserActivationResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get user activation
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/user/password:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: update user password
|
|
parameters:
|
|
- description: user
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UpdateUserPasswordReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update user password
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/user/profile:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: edit user profile
|
|
parameters:
|
|
- description: user
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.EditUserProfileReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: edit user profile
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/user/role:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: update user role
|
|
parameters:
|
|
- description: user
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UpdateUserRoleReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update user role
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/user/status:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: update user
|
|
parameters:
|
|
- description: user
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UpdateUserStatusReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update user
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/users:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: add users
|
|
parameters:
|
|
- description: user
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.AddUsersReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: add users
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/users/activation:
|
|
post:
|
|
description: send user activation
|
|
parameters:
|
|
- description: SendUserActivationReq
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.SendUserActivationReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: send user activation
|
|
tags:
|
|
- admin
|
|
/answer/admin/api/users/page:
|
|
get:
|
|
description: get user page
|
|
parameters:
|
|
- description: page size
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: page size
|
|
in: query
|
|
name: page_size
|
|
type: integer
|
|
- description: 'search query: email, username or id:[id]'
|
|
in: query
|
|
name: query
|
|
type: string
|
|
- description: staff user
|
|
in: query
|
|
name: staff
|
|
type: boolean
|
|
- description: user status
|
|
enum:
|
|
- suspended
|
|
- deleted
|
|
- inactive
|
|
in: query
|
|
name: status
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
allOf:
|
|
- $ref: '#/definitions/pager.PageModel'
|
|
- properties:
|
|
records:
|
|
items:
|
|
$ref: '#/definitions/schema.GetUserPageResp'
|
|
type: array
|
|
type: object
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get user page
|
|
tags:
|
|
- admin
|
|
/answer/api/v1/activity/timeline:
|
|
get:
|
|
description: get object timeline
|
|
parameters:
|
|
- description: object id
|
|
in: query
|
|
name: object_id
|
|
type: string
|
|
- description: tag slug name
|
|
in: query
|
|
name: tag_slug_name
|
|
type: string
|
|
- description: object type
|
|
enum:
|
|
- question
|
|
- answer
|
|
- tag
|
|
in: query
|
|
name: object_type
|
|
type: string
|
|
- description: is show vote
|
|
in: query
|
|
name: show_vote
|
|
type: boolean
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.GetObjectTimelineResp'
|
|
type: object
|
|
summary: get object timeline
|
|
tags:
|
|
- Comment
|
|
/answer/api/v1/activity/timeline/detail:
|
|
get:
|
|
description: get object timeline detail
|
|
parameters:
|
|
- description: revision id
|
|
in: query
|
|
name: revision_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.GetObjectTimelineResp'
|
|
type: object
|
|
summary: get object timeline detail
|
|
tags:
|
|
- Comment
|
|
/answer/api/v1/ai/conversation:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get conversation detail
|
|
parameters:
|
|
- description: conversation id
|
|
in: query
|
|
name: conversation_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.AIConversationDetailResp'
|
|
type: object
|
|
summary: get conversation detail
|
|
tags:
|
|
- ai-conversation
|
|
/answer/api/v1/ai/conversation/page:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get conversation list
|
|
parameters:
|
|
- description: page
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: page size
|
|
in: query
|
|
name: page_size
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
allOf:
|
|
- $ref: '#/definitions/pager.PageModel'
|
|
- properties:
|
|
list:
|
|
items:
|
|
$ref: '#/definitions/schema.AIConversationListItem'
|
|
type: array
|
|
type: object
|
|
type: object
|
|
summary: get conversation list
|
|
tags:
|
|
- ai-conversation
|
|
/answer/api/v1/ai/conversation/vote:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: vote record
|
|
parameters:
|
|
- description: vote request
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.AIConversationVoteReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
summary: vote record
|
|
tags:
|
|
- ai-conversation
|
|
/answer/api/v1/answer:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: delete answer
|
|
parameters:
|
|
- description: answer
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.RemoveAnswerReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: delete answer
|
|
tags:
|
|
- Answer
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: add answer
|
|
parameters:
|
|
- description: add answer request
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.AnswerAddReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Add Answer
|
|
tags:
|
|
- Answer
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update Answer
|
|
parameters:
|
|
- description: AnswerUpdateReq
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.AnswerUpdateReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update Answer
|
|
tags:
|
|
- Answer
|
|
/answer/api/v1/answer/acceptance:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Accept Answer
|
|
parameters:
|
|
- description: AcceptAnswerReq
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.AcceptAnswerReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Accept Answer
|
|
tags:
|
|
- Answer
|
|
/answer/api/v1/answer/info:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get Answer Detail
|
|
parameters:
|
|
- description: id
|
|
in: query
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.GetAnswerInfoResp'
|
|
type: object
|
|
summary: Get Answer Detail
|
|
tags:
|
|
- Answer
|
|
/answer/api/v1/answer/page:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: AnswerList <br> <b>order</b> (default or updated)
|
|
parameters:
|
|
- description: question_id
|
|
in: query
|
|
name: question_id
|
|
required: true
|
|
type: string
|
|
- description: order
|
|
in: query
|
|
name: order
|
|
required: true
|
|
type: string
|
|
- description: page
|
|
in: query
|
|
name: page
|
|
required: true
|
|
type: string
|
|
- description: page_size
|
|
in: query
|
|
name: page_size
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
summary: AnswerList
|
|
tags:
|
|
- Answer
|
|
/answer/api/v1/answer/recover:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: recover the deleted answer
|
|
parameters:
|
|
- description: answer
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.RecoverAnswerReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: recover answer
|
|
tags:
|
|
- Answer
|
|
/answer/api/v1/badge:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get badge info
|
|
parameters:
|
|
- default: string
|
|
description: id
|
|
in: query
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.GetBadgeInfoResp'
|
|
type: object
|
|
summary: get badge info
|
|
tags:
|
|
- api-badge
|
|
/answer/api/v1/badge/awards/page:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get badge award list
|
|
parameters:
|
|
- description: page
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: page size
|
|
in: query
|
|
name: page_size
|
|
type: integer
|
|
- description: badge id
|
|
in: query
|
|
name: badge_id
|
|
required: true
|
|
type: string
|
|
- description: only list the award by username
|
|
in: query
|
|
name: username
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.GetBadgeInfoResp'
|
|
type: object
|
|
summary: get badge award list
|
|
tags:
|
|
- api-badge
|
|
/answer/api/v1/badge/user/awards:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get user badge award list
|
|
parameters:
|
|
- description: user name
|
|
in: query
|
|
name: username
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/schema.GetUserBadgeAwardListResp'
|
|
type: array
|
|
type: object
|
|
summary: get user badge award list
|
|
tags:
|
|
- api-badge
|
|
/answer/api/v1/badge/user/awards/recent:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get user badge award list
|
|
parameters:
|
|
- description: user name
|
|
in: query
|
|
name: username
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/schema.GetUserBadgeAwardListResp'
|
|
type: array
|
|
type: object
|
|
summary: get user badge award list
|
|
tags:
|
|
- api-badge
|
|
/answer/api/v1/badges:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: list all badges group by group
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/schema.GetBadgeListResp'
|
|
type: array
|
|
type: object
|
|
summary: list all badges group by group
|
|
tags:
|
|
- api-badge
|
|
/answer/api/v1/collection/switch:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: add collection
|
|
parameters:
|
|
- description: collection
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.CollectionSwitchReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.CollectionSwitchResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: add collection
|
|
tags:
|
|
- Collection
|
|
/answer/api/v1/comment:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: remove comment
|
|
parameters:
|
|
- description: comment
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.RemoveCommentReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: remove comment
|
|
tags:
|
|
- Comment
|
|
get:
|
|
description: get comment by id
|
|
parameters:
|
|
- description: id
|
|
in: query
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
allOf:
|
|
- $ref: '#/definitions/pager.PageModel'
|
|
- properties:
|
|
list:
|
|
items:
|
|
$ref: '#/definitions/schema.GetCommentResp'
|
|
type: array
|
|
type: object
|
|
type: object
|
|
summary: get comment by id
|
|
tags:
|
|
- Comment
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: add comment
|
|
parameters:
|
|
- description: comment
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.AddCommentReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.GetCommentResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: add comment
|
|
tags:
|
|
- Comment
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: update comment
|
|
parameters:
|
|
- description: comment
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UpdateCommentReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update comment
|
|
tags:
|
|
- Comment
|
|
/answer/api/v1/comment/page:
|
|
get:
|
|
description: get comment page
|
|
parameters:
|
|
- description: page
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: page size
|
|
in: query
|
|
name: page_size
|
|
type: integer
|
|
- description: object id
|
|
in: query
|
|
name: object_id
|
|
required: true
|
|
type: string
|
|
- description: query condition
|
|
enum:
|
|
- vote
|
|
in: query
|
|
name: query_cond
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
allOf:
|
|
- $ref: '#/definitions/pager.PageModel'
|
|
- properties:
|
|
list:
|
|
items:
|
|
$ref: '#/definitions/schema.GetCommentResp'
|
|
type: array
|
|
type: object
|
|
type: object
|
|
summary: get comment page
|
|
tags:
|
|
- Comment
|
|
/answer/api/v1/connector/binding/email:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: external login binding user send email
|
|
parameters:
|
|
- description: external login binding user send email
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.ExternalLoginBindingUserSendEmailReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.ExternalLoginBindingUserSendEmailResp'
|
|
type: object
|
|
summary: external login binding user send email
|
|
tags:
|
|
- PluginConnector
|
|
/answer/api/v1/connector/info:
|
|
get:
|
|
description: get all enabled connectors
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/schema.ConnectorInfoResp'
|
|
type: array
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get all enabled connectors
|
|
tags:
|
|
- PluginConnector
|
|
/answer/api/v1/connector/user/info:
|
|
get:
|
|
description: get all connectors info about user
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/schema.ConnectorUserInfoResp'
|
|
type: array
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get all connectors info about user
|
|
tags:
|
|
- PluginConnector
|
|
/answer/api/v1/connector/user/unbinding:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: unbind external user login
|
|
parameters:
|
|
- description: ExternalLoginUnbindingReq
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.ExternalLoginUnbindingReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: unbind external user login
|
|
tags:
|
|
- PluginConnector
|
|
/answer/api/v1/embed/config:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get embed plugin config
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/plugin.EmbedConfig'
|
|
type: array
|
|
type: object
|
|
summary: get embed plugin config
|
|
tags:
|
|
- Plugin
|
|
/answer/api/v1/file:
|
|
post:
|
|
consumes:
|
|
- multipart/form-data
|
|
description: upload file
|
|
parameters:
|
|
- description: identify the source of the file upload
|
|
enum:
|
|
- post
|
|
- post_attachment
|
|
- avatar
|
|
- branding
|
|
in: formData
|
|
name: source
|
|
required: true
|
|
type: string
|
|
- description: file
|
|
in: formData
|
|
name: file
|
|
required: true
|
|
type: file
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
type: string
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: upload file
|
|
tags:
|
|
- Upload
|
|
/answer/api/v1/follow:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: follow object or cancel follow operation
|
|
parameters:
|
|
- description: follow
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.FollowReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.FollowResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: follow object or cancel follow operation
|
|
tags:
|
|
- Activity
|
|
/answer/api/v1/follow/tags:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: update user follow tags
|
|
parameters:
|
|
- description: follow
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UpdateFollowTagsReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update user follow tags
|
|
tags:
|
|
- Activity
|
|
/answer/api/v1/language/config:
|
|
get:
|
|
description: get language config mapping
|
|
parameters:
|
|
- description: Accept-Language
|
|
in: header
|
|
name: Accept-Language
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
summary: get language config mapping
|
|
tags:
|
|
- Lang
|
|
/answer/api/v1/language/options:
|
|
get:
|
|
description: Get language options
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
summary: Get language options
|
|
tags:
|
|
- Lang
|
|
/answer/api/v1/meta/reaction:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get reaction for an object
|
|
parameters:
|
|
- description: object_id
|
|
in: query
|
|
name: object_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.ReactionRespItem'
|
|
type: object
|
|
summary: get reaction
|
|
tags:
|
|
- Meta
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: update reaction. if not exist, add one
|
|
parameters:
|
|
- description: reaction
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UpdateReactionReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: add or update reaction
|
|
tags:
|
|
- Meta
|
|
/answer/api/v1/notification/page:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get notification list
|
|
parameters:
|
|
- description: page size
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: page size
|
|
in: query
|
|
name: page_size
|
|
type: integer
|
|
- description: type
|
|
enum:
|
|
- inbox
|
|
- achievement
|
|
in: query
|
|
name: type
|
|
required: true
|
|
type: string
|
|
- description: inbox_type
|
|
enum:
|
|
- all
|
|
- posts
|
|
- invites
|
|
- votes
|
|
in: query
|
|
name: inbox_type
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get notification list
|
|
tags:
|
|
- Notification
|
|
/answer/api/v1/notification/read/state:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: ClearUnRead
|
|
parameters:
|
|
- description: NotificationClearIDRequest
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.NotificationClearIDRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: ClearUnRead
|
|
tags:
|
|
- Notification
|
|
/answer/api/v1/notification/read/state/all:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: ClearUnRead
|
|
parameters:
|
|
- description: NotificationClearRequest
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.NotificationClearRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: ClearUnRead
|
|
tags:
|
|
- Notification
|
|
/answer/api/v1/notification/status:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: GetRedDot
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: GetRedDot
|
|
tags:
|
|
- Notification
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: DelRedDot
|
|
parameters:
|
|
- description: NotificationClearRequest
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.NotificationClearRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: DelRedDot
|
|
tags:
|
|
- Notification
|
|
/answer/api/v1/permission:
|
|
get:
|
|
description: check user permission
|
|
parameters:
|
|
- description: access-token
|
|
in: header
|
|
name: Authorization
|
|
required: true
|
|
type: string
|
|
- description: permission key
|
|
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
|
|
in: query
|
|
name: action
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
additionalProperties:
|
|
type: boolean
|
|
type: object
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: check user permission
|
|
tags:
|
|
- Permission
|
|
/answer/api/v1/personal/answer/page:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: list personal answers
|
|
parameters:
|
|
- default: string
|
|
description: username
|
|
in: query
|
|
name: username
|
|
required: true
|
|
type: string
|
|
- description: order
|
|
enum:
|
|
- newest
|
|
- score
|
|
in: query
|
|
name: order
|
|
required: true
|
|
type: string
|
|
- default: "0"
|
|
description: page
|
|
in: query
|
|
name: page
|
|
required: true
|
|
type: string
|
|
- default: "20"
|
|
description: page_size
|
|
in: query
|
|
name: page_size
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: list personal answers
|
|
tags:
|
|
- Personal
|
|
/answer/api/v1/personal/collection/page:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: list personal collections
|
|
parameters:
|
|
- default: "0"
|
|
description: page
|
|
in: query
|
|
name: page
|
|
required: true
|
|
type: string
|
|
- default: "20"
|
|
description: page_size
|
|
in: query
|
|
name: page_size
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: list personal collections
|
|
tags:
|
|
- Collection
|
|
/answer/api/v1/personal/comment/page:
|
|
get:
|
|
description: user personal comment list
|
|
parameters:
|
|
- description: page
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: page size
|
|
in: query
|
|
name: page_size
|
|
type: integer
|
|
- description: username
|
|
in: query
|
|
name: username
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
allOf:
|
|
- $ref: '#/definitions/pager.PageModel'
|
|
- properties:
|
|
list:
|
|
items:
|
|
$ref: '#/definitions/schema.GetCommentPersonalWithPageResp'
|
|
type: array
|
|
type: object
|
|
type: object
|
|
summary: user personal comment list
|
|
tags:
|
|
- Comment
|
|
/answer/api/v1/personal/qa/top:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: UserTop
|
|
parameters:
|
|
- default: string
|
|
description: username
|
|
in: query
|
|
name: username
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
summary: UserTop
|
|
tags:
|
|
- Question
|
|
/answer/api/v1/personal/rank/page:
|
|
get:
|
|
description: user personal rank list
|
|
parameters:
|
|
- description: page
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: page size
|
|
in: query
|
|
name: page_size
|
|
type: integer
|
|
- description: username
|
|
in: query
|
|
name: username
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
allOf:
|
|
- $ref: '#/definitions/pager.PageModel'
|
|
- properties:
|
|
list:
|
|
items:
|
|
$ref: '#/definitions/schema.GetRankPersonalPageResp'
|
|
type: array
|
|
type: object
|
|
type: object
|
|
summary: user personal rank list
|
|
tags:
|
|
- Rank
|
|
/answer/api/v1/personal/user/info:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: GetOtherUserInfoByUsername
|
|
parameters:
|
|
- description: username
|
|
in: query
|
|
name: username
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.GetOtherUserInfoResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: GetOtherUserInfoByUsername
|
|
tags:
|
|
- User
|
|
/answer/api/v1/personal/vote/page:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get user personal votes
|
|
parameters:
|
|
- description: page size
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: page size
|
|
in: query
|
|
name: page_size
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
allOf:
|
|
- $ref: '#/definitions/pager.PageModel'
|
|
- properties:
|
|
list:
|
|
items:
|
|
$ref: '#/definitions/schema.GetVoteWithPageResp'
|
|
type: array
|
|
type: object
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get user personal votes
|
|
tags:
|
|
- Activity
|
|
/answer/api/v1/plugin/status:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get all plugins status
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/schema.GetPluginListResp'
|
|
type: array
|
|
type: object
|
|
summary: get all plugins status
|
|
tags:
|
|
- Plugin
|
|
/answer/api/v1/post/render:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: render post content
|
|
parameters:
|
|
- description: PostRenderReq
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.PostRenderReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: render post content
|
|
tags:
|
|
- Upload
|
|
/answer/api/v1/question:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: delete question
|
|
parameters:
|
|
- description: question
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.RemoveQuestionReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: delete question
|
|
tags:
|
|
- Question
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: add question
|
|
parameters:
|
|
- description: question
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.QuestionAdd'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: add question
|
|
tags:
|
|
- Question
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: update question
|
|
parameters:
|
|
- description: question
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.QuestionUpdate'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update question
|
|
tags:
|
|
- Question
|
|
/answer/api/v1/question/answer:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: add question and answer
|
|
parameters:
|
|
- description: question
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.QuestionAddByAnswer'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: add question and answer
|
|
tags:
|
|
- Question
|
|
/answer/api/v1/question/info:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get question details
|
|
parameters:
|
|
- default: "1"
|
|
description: Question TagID
|
|
in: query
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
summary: get question details
|
|
tags:
|
|
- Question
|
|
/answer/api/v1/question/invite:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get question invite user info
|
|
parameters:
|
|
- default: "1"
|
|
description: Question ID
|
|
in: query
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
summary: get question invite user info
|
|
tags:
|
|
- Question
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: update question invite user
|
|
parameters:
|
|
- description: question
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.QuestionUpdateInviteUser'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update question invite user
|
|
tags:
|
|
- Question
|
|
/answer/api/v1/question/link:
|
|
get:
|
|
description: get question link
|
|
parameters:
|
|
- in: query
|
|
minimum: 1
|
|
name: in_days
|
|
type: integer
|
|
- enum:
|
|
- newest
|
|
- active
|
|
- hot
|
|
- score
|
|
- unanswered
|
|
- recommend
|
|
- frequent
|
|
in: query
|
|
name: order
|
|
type: string
|
|
- in: query
|
|
minimum: 1
|
|
name: page
|
|
type: integer
|
|
- in: query
|
|
maximum: 100
|
|
minimum: 1
|
|
name: page_size
|
|
type: integer
|
|
- in: query
|
|
name: question_id
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
allOf:
|
|
- $ref: '#/definitions/pager.PageModel'
|
|
- properties:
|
|
list:
|
|
items:
|
|
$ref: '#/definitions/schema.QuestionPageResp'
|
|
type: array
|
|
type: object
|
|
type: object
|
|
summary: get question link
|
|
tags:
|
|
- Question
|
|
/answer/api/v1/question/operation:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Operation question \n operation [pin unpin hide show]
|
|
parameters:
|
|
- description: question
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.OperationQuestionReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Operation question
|
|
tags:
|
|
- Question
|
|
/answer/api/v1/question/page:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get questions by page
|
|
parameters:
|
|
- description: QuestionPageReq
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.QuestionPageReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
allOf:
|
|
- $ref: '#/definitions/pager.PageModel'
|
|
- properties:
|
|
list:
|
|
items:
|
|
$ref: '#/definitions/schema.QuestionPageResp'
|
|
type: array
|
|
type: object
|
|
type: object
|
|
summary: get questions by page
|
|
tags:
|
|
- Question
|
|
/answer/api/v1/question/recommend/page:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get recommend questions by page
|
|
parameters:
|
|
- description: QuestionPageReq
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.QuestionPageReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
allOf:
|
|
- $ref: '#/definitions/pager.PageModel'
|
|
- properties:
|
|
list:
|
|
items:
|
|
$ref: '#/definitions/schema.QuestionPageResp'
|
|
type: array
|
|
type: object
|
|
type: object
|
|
summary: get recommend questions by page
|
|
tags:
|
|
- Question
|
|
/answer/api/v1/question/recover:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: recover deleted question
|
|
parameters:
|
|
- description: question
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.QuestionRecoverReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: recover deleted question
|
|
tags:
|
|
- Question
|
|
/answer/api/v1/question/reopen:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: reopen question
|
|
parameters:
|
|
- description: question
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.ReopenQuestionReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: reopen question
|
|
tags:
|
|
- Question
|
|
/answer/api/v1/question/similar:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: fuzzy query similar questions based on title
|
|
parameters:
|
|
- default: string
|
|
description: title
|
|
in: query
|
|
name: title
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: fuzzy query similar questions based on title
|
|
tags:
|
|
- Question
|
|
/answer/api/v1/question/similar/tag:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Search Similar Question
|
|
parameters:
|
|
- default: ""
|
|
description: question_id
|
|
in: query
|
|
name: question_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
summary: Search Similar Question
|
|
tags:
|
|
- Question
|
|
/answer/api/v1/question/status:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Close question
|
|
parameters:
|
|
- description: question
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.CloseQuestionReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Close question
|
|
tags:
|
|
- Question
|
|
/answer/api/v1/question/tags:
|
|
get:
|
|
description: get tag list
|
|
parameters:
|
|
- description: tag
|
|
in: query
|
|
name: tag
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/schema.GetTagBasicResp'
|
|
type: array
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get tag list
|
|
tags:
|
|
- Tag
|
|
/answer/api/v1/reasons:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get reasons by object type and action
|
|
parameters:
|
|
- description: object_type
|
|
enum:
|
|
- question
|
|
- answer
|
|
- comment
|
|
- user
|
|
in: query
|
|
name: object_type
|
|
required: true
|
|
type: string
|
|
- description: action
|
|
enum:
|
|
- status
|
|
- close
|
|
- flag
|
|
- review
|
|
in: query
|
|
name: action
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get reasons by object type and action
|
|
tags:
|
|
- reason
|
|
/answer/api/v1/render/config:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: GetRenderConfig
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/plugin.RenderConfig'
|
|
type: object
|
|
summary: GetRenderConfig
|
|
tags:
|
|
- PluginRender
|
|
/answer/api/v1/report:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: add report <br> source (question, answer, comment, user)
|
|
parameters:
|
|
- description: report
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.AddReportReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: add report
|
|
tags:
|
|
- Report
|
|
/answer/api/v1/report/review:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: review report
|
|
parameters:
|
|
- description: flag
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.ReviewReportReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: review report
|
|
tags:
|
|
- Report
|
|
/answer/api/v1/report/unreviewed/post:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get unreviewed report post page
|
|
parameters:
|
|
- description: page
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
allOf:
|
|
- $ref: '#/definitions/pager.PageModel'
|
|
- properties:
|
|
list:
|
|
items:
|
|
$ref: '#/definitions/schema.GetReportListPageResp'
|
|
type: array
|
|
type: object
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get unreviewed report post page
|
|
tags:
|
|
- Report
|
|
/answer/api/v1/review/pending/post:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: update review
|
|
parameters:
|
|
- description: review
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UpdateReviewReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update review
|
|
tags:
|
|
- Review
|
|
/answer/api/v1/review/pending/post/page:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get unreviewed post page
|
|
parameters:
|
|
- description: page
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: object_id
|
|
in: query
|
|
name: object_id
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
allOf:
|
|
- $ref: '#/definitions/pager.PageModel'
|
|
- properties:
|
|
list:
|
|
items:
|
|
$ref: '#/definitions/schema.GetUnreviewedPostPageResp'
|
|
type: array
|
|
type: object
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get unreviewed post page
|
|
tags:
|
|
- Review
|
|
/answer/api/v1/reviewing/type:
|
|
get:
|
|
description: get reviewing type
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/schema.GetReviewingTypeResp'
|
|
type: array
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get reviewing type
|
|
tags:
|
|
- Revision
|
|
/answer/api/v1/revisions:
|
|
get:
|
|
description: get revision list
|
|
parameters:
|
|
- description: object id
|
|
in: query
|
|
name: object_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/schema.GetRevisionResp'
|
|
type: array
|
|
type: object
|
|
summary: get revision list
|
|
tags:
|
|
- Revision
|
|
/answer/api/v1/revisions/audit:
|
|
put:
|
|
description: revision audit operation:approve or reject
|
|
parameters:
|
|
- description: audit
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.RevisionAuditReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: revision audit
|
|
tags:
|
|
- Revision
|
|
/answer/api/v1/revisions/edit/check:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: check can update revision
|
|
parameters:
|
|
- default: string
|
|
description: id
|
|
in: query
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: check can update revision
|
|
tags:
|
|
- Revision
|
|
/answer/api/v1/revisions/unreviewed:
|
|
get:
|
|
description: get unreviewed revision list
|
|
parameters:
|
|
- description: page id
|
|
in: query
|
|
name: page
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
allOf:
|
|
- $ref: '#/definitions/pager.PageModel'
|
|
- properties:
|
|
list:
|
|
items:
|
|
$ref: '#/definitions/schema.GetUnreviewedRevisionResp'
|
|
type: array
|
|
type: object
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get unreviewed revision list
|
|
tags:
|
|
- Revision
|
|
/answer/api/v1/search:
|
|
get:
|
|
description: search object
|
|
parameters:
|
|
- description: query string
|
|
in: query
|
|
name: q
|
|
required: true
|
|
type: string
|
|
- description: order
|
|
enum:
|
|
- newest
|
|
- active
|
|
- score
|
|
- relevance
|
|
in: query
|
|
name: order
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.SearchResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: search object
|
|
tags:
|
|
- Search
|
|
/answer/api/v1/search/desc:
|
|
get:
|
|
description: get search description
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.SearchResp'
|
|
type: object
|
|
summary: get search description
|
|
tags:
|
|
- Search
|
|
/answer/api/v1/siteinfo:
|
|
get:
|
|
description: get site info
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.SiteInfoResp'
|
|
type: object
|
|
summary: get site info
|
|
tags:
|
|
- site
|
|
/answer/api/v1/siteinfo/legal:
|
|
get:
|
|
description: get site legal info
|
|
parameters:
|
|
- description: legal information type
|
|
enum:
|
|
- tos
|
|
- privacy
|
|
in: query
|
|
name: info_type
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.GetSiteLegalInfoResp'
|
|
type: object
|
|
summary: get site legal info
|
|
tags:
|
|
- site
|
|
/answer/api/v1/tag:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: delete tag
|
|
parameters:
|
|
- description: tag
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.RemoveTagReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: delete tag
|
|
tags:
|
|
- Tag
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get tag one
|
|
parameters:
|
|
- description: tag id
|
|
in: query
|
|
name: tag_id
|
|
required: true
|
|
type: string
|
|
- description: tag name
|
|
in: query
|
|
name: tag_name
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.GetTagResp'
|
|
type: object
|
|
summary: get tag one
|
|
tags:
|
|
- Tag
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: add tag
|
|
parameters:
|
|
- description: tag
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.AddTagReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: add tag
|
|
tags:
|
|
- Tag
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: update tag
|
|
parameters:
|
|
- description: tag
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UpdateTagReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update tag
|
|
tags:
|
|
- Tag
|
|
/answer/api/v1/tag/merge:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: merge tag
|
|
parameters:
|
|
- description: tag
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.AddTagReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: merge tag
|
|
tags:
|
|
- Tag
|
|
/answer/api/v1/tag/recover:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: recover delete tag
|
|
parameters:
|
|
- description: tag
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.RecoverTagReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: recover delete tag
|
|
tags:
|
|
- Tag
|
|
/answer/api/v1/tag/synonym:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: update tag
|
|
parameters:
|
|
- description: tag
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UpdateTagSynonymReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update tag
|
|
tags:
|
|
- Tag
|
|
/answer/api/v1/tag/synonyms:
|
|
get:
|
|
description: get tag synonyms
|
|
parameters:
|
|
- description: tag id
|
|
in: query
|
|
name: tag_id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.GetTagSynonymsResp'
|
|
type: object
|
|
summary: get tag synonyms
|
|
tags:
|
|
- Tag
|
|
/answer/api/v1/tags:
|
|
get:
|
|
description: get tags list by slug name
|
|
parameters:
|
|
- collectionFormat: csv
|
|
description: string collection
|
|
in: query
|
|
items:
|
|
type: string
|
|
name: tags
|
|
type: array
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/schema.GetTagBasicResp'
|
|
type: array
|
|
type: object
|
|
summary: get tags list
|
|
tags:
|
|
- Tag
|
|
/answer/api/v1/tags/following:
|
|
get:
|
|
description: get following tag list
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/schema.GetFollowingTagsResp'
|
|
type: array
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get following tag list
|
|
tags:
|
|
- Tag
|
|
/answer/api/v1/tags/page:
|
|
get:
|
|
description: get tag page
|
|
parameters:
|
|
- description: page size
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: page size
|
|
in: query
|
|
name: page_size
|
|
type: integer
|
|
- description: slug_name
|
|
in: query
|
|
name: slug_name
|
|
type: string
|
|
- description: query condition
|
|
enum:
|
|
- popular
|
|
- name
|
|
- newest
|
|
in: query
|
|
name: query_cond
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
allOf:
|
|
- $ref: '#/definitions/pager.PageModel'
|
|
- properties:
|
|
list:
|
|
items:
|
|
$ref: '#/definitions/schema.GetTagPageResp'
|
|
type: array
|
|
type: object
|
|
type: object
|
|
summary: get tag page
|
|
tags:
|
|
- Tag
|
|
/answer/api/v1/user/action/record:
|
|
get:
|
|
description: ActionRecord
|
|
parameters:
|
|
- description: action
|
|
enum:
|
|
- login
|
|
- e_mail
|
|
- find_pass
|
|
in: query
|
|
name: action
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.ActionRecordResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: ActionRecord
|
|
tags:
|
|
- User
|
|
/answer/api/v1/user/email:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: user change email verification
|
|
parameters:
|
|
- description: UserChangeEmailVerifyReq
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UserChangeEmailVerifyReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: user change email verification
|
|
tags:
|
|
- User
|
|
/answer/api/v1/user/email/change/code:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: send email to the user email then change their email
|
|
parameters:
|
|
- description: UserChangeEmailSendCodeReq
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UserChangeEmailSendCodeReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: send email to the user email then change their email
|
|
tags:
|
|
- User
|
|
/answer/api/v1/user/email/verification:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: UserVerifyEmail
|
|
parameters:
|
|
- default: ""
|
|
description: code
|
|
in: query
|
|
name: code
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.UserLoginResp'
|
|
type: object
|
|
summary: UserVerifyEmail
|
|
tags:
|
|
- User
|
|
/answer/api/v1/user/email/verification/send:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: UserVerifyEmailSend
|
|
parameters:
|
|
- default: ""
|
|
description: captcha_id
|
|
in: query
|
|
name: captcha_id
|
|
type: string
|
|
- default: ""
|
|
description: captcha_code
|
|
in: query
|
|
name: captcha_code
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: UserVerifyEmailSend
|
|
tags:
|
|
- User
|
|
/answer/api/v1/user/info:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get user info, if user no login response http code is 200, but
|
|
user info is null
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.GetCurrentLoginUserInfoResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: GetUserInfoByUserID
|
|
tags:
|
|
- User
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: UserUpdateInfo update user info
|
|
parameters:
|
|
- description: access-token
|
|
in: header
|
|
name: Authorization
|
|
required: true
|
|
type: string
|
|
- description: UpdateInfoRequest
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UpdateInfoRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: UserUpdateInfo update user info
|
|
tags:
|
|
- User
|
|
/answer/api/v1/user/info/search:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: SearchUserListByName
|
|
parameters:
|
|
- description: username
|
|
in: query
|
|
name: username
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.GetOtherUserInfoResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: SearchUserListByName
|
|
tags:
|
|
- User
|
|
/answer/api/v1/user/interface:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: UserUpdateInterface update user interface config
|
|
parameters:
|
|
- description: access-token
|
|
in: header
|
|
name: Authorization
|
|
required: true
|
|
type: string
|
|
- description: UpdateInfoRequest
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UpdateUserInterfaceRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: UserUpdateInterface update user interface config
|
|
tags:
|
|
- User
|
|
/answer/api/v1/user/login/email:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: UserEmailLogin
|
|
parameters:
|
|
- description: UserEmailLogin
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UserEmailLoginReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.UserLoginResp'
|
|
type: object
|
|
summary: UserEmailLogin
|
|
tags:
|
|
- User
|
|
/answer/api/v1/user/logout:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: user logout
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: user logout
|
|
tags:
|
|
- User
|
|
/answer/api/v1/user/notification/config:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: get user's notification config
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.GetUserNotificationConfigResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get user's notification config
|
|
tags:
|
|
- User
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: update user's notification config
|
|
parameters:
|
|
- description: UpdateUserNotificationConfigReq
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UpdateUserNotificationConfigReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update user's notification config
|
|
tags:
|
|
- User
|
|
/answer/api/v1/user/notification/unsubscribe:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: unsubscribe notification
|
|
parameters:
|
|
- description: UserUnsubscribeNotificationReq
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UserUnsubscribeNotificationReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
summary: unsubscribe notification
|
|
tags:
|
|
- User
|
|
/answer/api/v1/user/password:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: UserModifyPassWord
|
|
parameters:
|
|
- description: UserModifyPasswordReq
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UserModifyPasswordReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: UserModifyPassWord
|
|
tags:
|
|
- User
|
|
/answer/api/v1/user/password/replacement:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: UseRePassWord
|
|
parameters:
|
|
- description: UserRePassWordRequest
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UserRePassWordRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
summary: UseRePassWord
|
|
tags:
|
|
- User
|
|
/answer/api/v1/user/password/reset:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: RetrievePassWord
|
|
parameters:
|
|
- description: UserRetrievePassWordRequest
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UserRetrievePassWordRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
summary: RetrievePassWord
|
|
tags:
|
|
- User
|
|
/answer/api/v1/user/plugin/config:
|
|
get:
|
|
description: get user plugin config
|
|
parameters:
|
|
- description: plugin_slug_name
|
|
in: query
|
|
name: plugin_slug_name
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.GetPluginConfigResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get user plugin config
|
|
tags:
|
|
- UserPlugin
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: update user plugin config
|
|
parameters:
|
|
- description: UpdatePluginConfigReq
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UpdateUserPluginConfigReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: update user plugin config
|
|
tags:
|
|
- UserPlugin
|
|
/answer/api/v1/user/plugin/configs:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get plugin list that used for user.
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/schema.GetUserPluginListResp'
|
|
type: array
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: get plugin list that used for user.
|
|
tags:
|
|
- UserPlugin
|
|
/answer/api/v1/user/ranking:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get user ranking
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.UserRankingResp'
|
|
type: object
|
|
summary: get user ranking
|
|
tags:
|
|
- User
|
|
/answer/api/v1/user/register/email:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: UserRegisterByEmail
|
|
parameters:
|
|
- description: UserRegisterReq
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.UserRegisterReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.UserLoginResp'
|
|
type: object
|
|
summary: UserRegisterByEmail
|
|
tags:
|
|
- User
|
|
/answer/api/v1/user/staff:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get user staff
|
|
parameters:
|
|
- description: username
|
|
in: query
|
|
name: username
|
|
required: true
|
|
type: string
|
|
- description: page_size
|
|
in: query
|
|
name: page_size
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.GetUserStaffResp'
|
|
type: object
|
|
summary: get user staff
|
|
tags:
|
|
- User
|
|
/answer/api/v1/vote/down:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: add vote
|
|
parameters:
|
|
- description: vote
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.VoteReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.VoteResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: vote down
|
|
tags:
|
|
- Activity
|
|
/answer/api/v1/vote/up:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: add vote
|
|
parameters:
|
|
- description: vote
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/schema.VoteReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/schema.VoteResp'
|
|
type: object
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: vote up
|
|
tags:
|
|
- Activity
|
|
/custom.css:
|
|
get:
|
|
description: get site custom CSS
|
|
produces:
|
|
- text/css
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
summary: get site custom CSS
|
|
tags:
|
|
- site
|
|
/installation/base-info:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: init base info
|
|
parameters:
|
|
- description: InitBaseInfoReq
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/install.InitBaseInfoReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
summary: init base info
|
|
tags:
|
|
- installation
|
|
/installation/config-file/check:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: check config file if exist when installation
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/install.CheckConfigFileResp'
|
|
type: object
|
|
summary: check config file if exist when installation
|
|
tags:
|
|
- installation
|
|
/installation/db/check:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: check database if exist when installation
|
|
parameters:
|
|
- description: CheckDatabaseReq
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/install.CheckDatabaseReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/install.CheckConfigFileResp'
|
|
type: object
|
|
summary: check database if exist when installation
|
|
tags:
|
|
- installation
|
|
/installation/init:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: init environment
|
|
parameters:
|
|
- description: CheckDatabaseReq
|
|
in: body
|
|
name: data
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/install.CheckDatabaseReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
summary: init environment
|
|
tags:
|
|
- installation
|
|
/installation/language/config:
|
|
get:
|
|
description: get installation language config mapping
|
|
parameters:
|
|
- description: installation language
|
|
in: query
|
|
name: lang
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
summary: get installation language config mapping
|
|
tags:
|
|
- Lang
|
|
/installation/language/options:
|
|
get:
|
|
description: get installation language options
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/handler.RespBody'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/translator.LangOption'
|
|
type: array
|
|
type: object
|
|
summary: get installation language options
|
|
tags:
|
|
- Lang
|
|
/personal/question/page:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: list personal questions
|
|
parameters:
|
|
- default: string
|
|
description: username
|
|
in: query
|
|
name: username
|
|
required: true
|
|
type: string
|
|
- description: order
|
|
enum:
|
|
- newest
|
|
- score
|
|
in: query
|
|
name: order
|
|
required: true
|
|
type: string
|
|
- default: "0"
|
|
description: page
|
|
in: query
|
|
name: page
|
|
required: true
|
|
type: string
|
|
- default: "20"
|
|
description: page_size
|
|
in: query
|
|
name: page_size
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handler.RespBody'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: list personal questions
|
|
tags:
|
|
- Personal
|
|
/robots.txt:
|
|
get:
|
|
description: get site robots information
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
type: string
|
|
summary: get site robots information
|
|
tags:
|
|
- site
|
|
securityDefinitions:
|
|
ApiKeyAuth:
|
|
in: header
|
|
name: Authorization
|
|
type: apiKey
|
|
swagger: "2.0"
|