Documentation
¶
Index ¶
- Constants
- Variables
- type AcceptAnswerActivity
- type AcceptAnswerOperationInfo
- type AcceptAnswerReq
- type AcceptedAnswerItem
- type ActObjectInfo
- type ActObjectTimeline
- type ActionRecordReq
- type ActionRecordResp
- type ActivityMsg
- type AddCollectionGroupReq
- type AddCommentReq
- type AddConfigReq
- type AddReportReq
- type AddRevisionDTO
- type AddTagListReq
- type AddTagReq
- type AddTagResp
- type AddUserReq
- type AddUsersErrorData
- type AddUsersReq
- type AdminAnswerInfo
- type AdminAnswerPageReq
- type AdminQuestionInfo
- type AdminQuestionPageReq
- type AdminSetAnswerStatusRequest
- type AdminSetQuestionStatusRequest
- type AgentInfo
- type AnswerAddReq
- type AnswerInfo
- type AnswerListReq
- type AnswerUpdateReq
- type AnswerUpdateResp
- type AvatarInfo
- type CheckCanQuestionUpdate
- type CloseQuestionMeta
- type CloseQuestionReq
- type CollectionSwitchDTO
- type CollectionSwitchReq
- type CollectionSwitchResp
- type ConfigField
- type ConfigFieldOption
- type ConfigFieldUIOptions
- type ConnectorInfoResp
- type ConnectorUserInfoResp
- type ControlCenter
- type DashboardInfo
- type DashboardInfoVersion
- type EmailCodeContent
- type EmailSourceType
- type ErrTypeData
- type ExternalLoginBindingUserReq
- type ExternalLoginBindingUserResp
- type ExternalLoginBindingUserSendEmailReq
- type ExternalLoginBindingUserSendEmailResp
- type ExternalLoginUnbindingReq
- type ExternalLoginUserInfoCache
- type ExternalNotificationMsg
- type FollowDTO
- type FollowReq
- type FollowResp
- type ForbiddenResp
- type GetCloseTypeResp
- type GetCollectionGroupResp
- type GetCommentListReq
- type GetCommentPersonalWithPageReq
- type GetCommentPersonalWithPageResp
- type GetCommentReq
- type GetCommentResp
- type GetCommentWithPageReq
- type GetConfigListReq
- type GetConfigResp
- type GetConfigWithPageReq
- type GetCurrentLoginUserInfoResp
- type GetFollowingTagsResp
- type GetManifestJsonResp
- type GetObjectTimelineDetailReq
- type GetObjectTimelineDetailResp
- type GetObjectTimelineReq
- type GetObjectTimelineResp
- type GetOtherUserInfoByUsernameReq
- type GetOtherUserInfoByUsernameResp
- type GetOtherUserInfoResp
- type GetPermissionReq
- type GetPermissionResp
- type GetPluginConfigReq
- type GetPluginConfigResp
- type GetPluginListReq
- type GetPluginListResp
- type GetPrivilegesConfigResp
- type GetRankPersonalPageResp
- type GetRankPersonalWithPageReq
- type GetRedDot
- type GetReportListPageDTO
- type GetReportListPageResp
- type GetReportListReq
- type GetReportTypeResp
- type GetRevisionListReq
- type GetRevisionResp
- type GetRoleResp
- type GetSMTPConfigResp
- type GetSiteLegalInfoReq
- type GetSiteLegalInfoResp
- type GetTagInfoReq
- type GetTagListListReq
- type GetTagListResp
- type GetTagListWithPageReq
- type GetTagPageResp
- type GetTagResp
- type GetTagSynonymsReq
- type GetTagSynonymsResp
- type GetTagWithPageReq
- type GetTamplateTagInfoReq
- type GetUnreviewedRevisionResp
- type GetUserActivationReq
- type GetUserActivationResp
- type GetUserInfoReq
- type GetUserInfoResp
- type GetUserNotificationConfigResp
- type GetUserPageReq
- type GetUserPageResp
- type GetVoteWithPageReq
- type GetVoteWithPageResp
- type LoadingAction
- type NewAnswerTemplateData
- type NewAnswerTemplateRawData
- type NewCommentTemplateData
- type NewCommentTemplateRawData
- type NewInviteAnswerTemplateData
- type NewInviteAnswerTemplateRawData
- type NewQuestionTemplateData
- type NewQuestionTemplateRawData
- type NotificationChannelConfig
- type NotificationChannels
- type NotificationClearIDRequest
- type NotificationClearRequest
- type NotificationConfig
- type NotificationContent
- type NotificationMsg
- type NotificationSearch
- type ObjectInfo
- type ObjectTimelineDetail
- type ObjectTimelineTag
- type OnCompleteAction
- type Operation
- type OperationLevel
- type OperationQuestionReq
- type Paginator
- type PermissionMemberAction
- type PermissionTrTplData
- type PersonalAnswerPageReq
- type PersonalBranding
- type PersonalCollectionPageReq
- type PersonalQuestionPageReq
- type PluginStatus
- type PostRenderReq
- type PrivilegeLevel
- type PrivilegeOption
- type PrivilegeOptions
- type QAPageJsonLD
- type QuestionAdd
- type QuestionAddByAnswer
- type QuestionBaseInfo
- type QuestionInfo
- type QuestionPageReq
- type QuestionPageResp
- type QuestionPageRespOperator
- type QuestionPermission
- type QuestionUpdate
- type QuestionUpdateInviteUser
- type ReasonItem
- type ReasonReq
- type RedDot
- type RemoteVersion
- type RemoveAnswerReq
- type RemoveCommentReq
- type RemoveConfigReq
- type RemoveQuestionReq
- type RemoveTagListReq
- type RemoveTagReq
- type ReopenQuestionReq
- type ReportHandleReq
- type RevisionAuditReq
- type RevisionSearch
- type SearchCondition
- type SearchDTO
- type SearchDescResp
- type SearchObject
- type SearchObjectUser
- type SearchResp
- type SearchResult
- type SearchTagLikeReq
- type SearchTagLikeResp
- type SearchTagsBySlugName
- type SendUserActivationReq
- type SimpleObjectInfo
- type SiteBrandingReq
- type SiteBrandingResp
- type SiteCustomCssHTMLReq
- type SiteCustomCssHTMLResp
- type SiteGeneralReq
- type SiteGeneralResp
- type SiteInfoResp
- type SiteInterfaceReq
- type SiteInterfaceResp
- type SiteLegalReq
- type SiteLegalResp
- type SiteLoginReq
- type SiteLoginResp
- type SiteMapList
- type SiteMapPageList
- type SiteMapQuestionInfo
- type SiteSeoReq
- type SiteSeoResp
- type SiteThemeReq
- type SiteThemeResp
- type SiteUsersReq
- type SiteUsersResp
- type SiteWriteReq
- type SiteWriteResp
- type SuggestedAnswerItem
- type TagChange
- type TagItem
- type TagResp
- type TagSynonym
- type TemplateSiteInfoResp
- type ThemeOption
- type UIOptionAction
- type UnreviewedRevisionInfoInfo
- type UpdateCollectionGroupReq
- type UpdateCommentReq
- type UpdateCommentResp
- type UpdateConfigReq
- type UpdateFollowTagsReq
- type UpdateInfoRequest
- type UpdatePluginConfigReq
- type UpdatePluginStatusReq
- type UpdatePrivilegesConfigReq
- type UpdateQuestionResp
- type UpdateSMTPConfigReq
- type UpdateTagListReq
- type UpdateTagReq
- type UpdateTagResp
- type UpdateTagSynonymReq
- type UpdateUserInterfaceRequest
- type UpdateUserNotificationConfigReq
- type UpdateUserPasswordReq
- type UpdateUserRoleReq
- type UpdateUserStatusReq
- type UserAnswerInfo
- type UserBasicInfo
- type UserCenterAdminFunctionAgentResp
- type UserCenterAgentResp
- type UserCenterPersonalBranding
- type UserCenterUserSettingsResp
- type UserChangeEmailSendCodeReq
- type UserChangeEmailVerifyReq
- type UserEmailLoginReq
- type UserExternalLoginResp
- type UserLoginResp
- type UserModifyPasswordReq
- type UserQuestionInfo
- type UserRankingResp
- type UserRankingSimpleInfo
- type UserRePassWordRequest
- type UserRegisterReq
- type UserRetrievePassWordRequest
- type UserSettingAgent
- type UserUnsubscribeNotificationReq
- type UserVerifyEmailReq
- type UserVerifyEmailSendReq
- type VoteActivity
- type VoteOperationInfo
- type VoteReq
- type VoteResp
Constants ¶
const ( AnswerAcceptedFailed = 1 AnswerAcceptedEnable = 2 )
const ( CGDefault = 1 CGDIY = 2 )
const ( DashboardCacheKey = "answer:dashboard" DashboardCacheTime = 60 * time.Minute )
const ( ForbiddenReasonTypeInactive = "inactive" ForbiddenReasonTypeURLExpired = "url_expired" ForbiddenReasonTypeUserSuspended = "suspended" )
const ( NotificationTypeInbox = 1 NotificationTypeAchievement = 2 NotificationNotRead = 1 NotificationRead = 2 NotificationStatusNormal = 1 NotificationStatusDelete = 10 NotificationInboxTypeAll = 0 NotificationInboxTypePosts = 1 NotificationInboxTypeVotes = 2 NotificationInboxTypeInvites = 3 )
const ( QuestionOperationPin = "pin" QuestionOperationUnPin = "unpin" QuestionOperationHide = "hide" QuestionOperationShow = "show" )
const ( QuestionOrderCondNewest = "newest" QuestionOrderCondActive = "active" QuestionOrderCondFrequent = "frequent" QuestionOrderCondScore = "score" QuestionOrderCondUnanswered = "unanswered" )
const ( QuestionPageRespOperationTypeAsked = "asked" QuestionPageRespOperationTypeAnswered = "answered" QuestionPageRespOperationTypeModified = "modified" )
const ( NoticeStatusOn = 1 NoticeStatusOff = 2 )
const RevisionAuditApprove = "approve"
const RevisionAuditReject = "reject"
Variables ¶
var AppStartTime time.Time
var ErrTypeAlert = ErrTypeData{ErrType: "alert"}
var ErrTypeModal = ErrTypeData{ErrType: "modal"}
var ErrTypeToast = ErrTypeData{ErrType: "toast"}
var GetThemeOptions = []*ThemeOption{
{
Label: "Default",
Value: "default",
},
}
var NotificationInboxType = map[string]int{ "all": NotificationInboxTypeAll, "posts": NotificationInboxTypePosts, "invites": NotificationInboxTypeInvites, "votes": NotificationInboxTypeVotes, }
var NotificationType = map[string]int{ "inbox": NotificationTypeInbox, "achievement": NotificationTypeAchievement, }
var UserStatusShowMsg = map[int]string{
1: "",
9: "<strong>This user was suspended forever.</strong> This user doesn't meet a community guideline.",
10: "This user was deleted.",
11: "This user is inactive.",
}
Functions ¶
This section is empty.
Types ¶
type AcceptAnswerActivity ¶ added in v1.1.1
type AcceptAnswerActivity struct {
ActivityType int
ActivityUserID string
TriggerUserID string
OriginalObjectID string
Rank int
}
AcceptAnswerActivity accept answer activity
func (*AcceptAnswerActivity) HasRank ¶ added in v1.1.1
func (v *AcceptAnswerActivity) HasRank() int
type AcceptAnswerOperationInfo ¶ added in v1.1.1
type AcceptAnswerOperationInfo struct {
TriggerUserID string
QuestionObjectID string
QuestionUserID string
AnswerObjectID string
AnswerUserID string
// vote activity info
Activities []*AcceptAnswerActivity
}
AcceptAnswerOperationInfo accept answer operation info
func (*AcceptAnswerOperationInfo) GetUserIDs ¶ added in v1.1.1
func (a *AcceptAnswerOperationInfo) GetUserIDs() (userIDs []string)
type AcceptAnswerReq ¶ added in v1.1.3
type AcceptAnswerReq struct {
QuestionID string `validate:"required,gt=0,lte=30" json:"question_id"`
AnswerID string `validate:"omitempty" json:"answer_id"`
UserID string `json:"-"`
}
func (*AcceptAnswerReq) Check ¶ added in v1.1.3
func (req *AcceptAnswerReq) Check() (errFields []*validator.FormErrorField, err error)
type AcceptedAnswerItem ¶ added in v1.0.0
type ActObjectInfo ¶ added in v0.5.0
type ActObjectInfo struct {
Title string `json:"title"`
ObjectType string `json:"object_type"`
QuestionID string `json:"question_id"`
AnswerID string `json:"answer_id"`
Username string `json:"username"`
DisplayName string `json:"display_name"`
MainTagSlugName string `json:"main_tag_slug_name"`
}
ActObjectInfo act object info
type ActObjectTimeline ¶ added in v0.5.0
type ActObjectTimeline struct {
ActivityID string `json:"activity_id"`
RevisionID string `json:"revision_id"`
CreatedAt int64 `json:"created_at"`
ActivityType string `json:"activity_type"`
Username string `json:"username"`
UserDisplayName string `json:"user_display_name"`
Comment string `json:"comment"`
ObjectID string `json:"object_id"`
ObjectType string `json:"object_type"`
Cancelled bool `json:"cancelled"`
CancelledAt int64 `json:"cancelled_at"`
UserID string `json:"id"`
}
ActObjectTimeline act object timeline
type ActionRecordReq ¶
type ActionRecordResp ¶
type ActivityMsg ¶ added in v0.5.0
type ActivityMsg struct {
UserID string
TriggerUserID int64
ObjectID string
OriginalObjectID string
ActivityTypeKey constant.ActivityTypeKey
RevisionID string
ExtraInfo map[string]string
}
ActivityMsg activity message
type AddCollectionGroupReq ¶
type AddCollectionGroupReq struct {
//
UserID int64 `validate:"required" comment:"" json:"user_id"`
// the collection group name
Name string `validate:"required,gt=0,lte=50" comment:"the collection group name" json:"name"`
// mark this group is default, default 1
DefaultGroup int `validate:"required" comment:"mark this group is default, default 1" json:"default_group"`
//
CreateTime time.Time `validate:"required" comment:"" json:"create_time"`
//
UpdateTime time.Time `validate:"required" comment:"" json:"update_time"`
}
AddCollectionGroupReq add collection group request
type AddCommentReq ¶
type AddCommentReq struct {
// object id
ObjectID string `validate:"required" json:"object_id"`
// reply comment id
ReplyCommentID string `validate:"omitempty" json:"reply_comment_id"`
// original comment content
OriginalText string `validate:"required,notblank,gte=2,lte=600" json:"original_text"`
// parsed comment content
ParsedText string `json:"-"`
// @ user id list
MentionUsernameList []string `validate:"omitempty" json:"mention_username_list"`
// user id
UserID string `json:"-"`
// whether user can add it
CanAdd bool `json:"-"`
// whether user can edit it
CanEdit bool `json:"-"`
// whether user can delete it
CanDelete bool `json:"-"`
CaptchaID string `json:"captcha_id"` // captcha_id
CaptchaCode string `json:"captcha_code"`
}
AddCommentReq add comment request
func (*AddCommentReq) Check ¶ added in v1.0.0
func (req *AddCommentReq) Check() (errFields []*validator.FormErrorField, err error)
type AddConfigReq ¶
type AddConfigReq struct {
// the config key
Key string `validate:"omitempty,gt=0,lte=32" comment:"the config key" json:"key"`
// the config value, custom data structures and types
Value string `validate:"omitempty,gt=0,lte=128" comment:"the config value, custom data structures and types" json:"value"`
}
AddConfigReq add config request
type AddReportReq ¶
type AddReportReq struct {
// object id
ObjectID string `validate:"required,gt=0,lte=20" json:"object_id"`
// report type
ReportType int `validate:"required" json:"report_type"`
// report content
Content string `validate:"omitempty,gt=0,lte=500" json:"content"`
// user id
UserID string `json:"-"`
CaptchaID string `json:"captcha_id"` // captcha_id
CaptchaCode string `json:"captcha_code"`
}
AddReportReq add report request
type AddRevisionDTO ¶
type AddRevisionDTO struct {
// user id
UserID string
// object id
ObjectID string
// title
Title string
// content
Content string
// log
Log string
// status
Status int
}
AddRevisionDTO add revision request
type AddTagListReq ¶
type AddTagListReq struct {
// tag_id
TagID int64 `validate:"required" comment:"tag_id" json:"tag_id"`
// object_id
ObjectID int64 `validate:"required" comment:"object_id" json:"object_id"`
// tag_list_status(available: 1; deleted: 10)
Status int `validate:"required" comment:"tag_list_status(available: 1; deleted: 10)" json:"status"`
}
AddTagListReq add tag list request
type AddTagReq ¶ added in v1.0.7
type AddTagReq struct {
// slug_name
SlugName string `validate:"required,gt=0,lte=35" json:"slug_name"`
// display_name
DisplayName string `validate:"required,gt=0,lte=35" json:"display_name"`
// original text
OriginalText string `validate:"required,gt=0,lte=65536" json:"original_text"`
// parsed text
ParsedText string `json:"-"`
// user id
UserID string `json:"-"`
}
AddTagReq add tag request
type AddTagResp ¶ added in v1.0.7
type AddTagResp struct {
SlugName string `json:"slug_name"`
}
AddTagResp add tag response
type AddUserReq ¶ added in v1.0.0
type AddUserReq struct {
DisplayName string `validate:"required,gte=4,lte=30" json:"display_name"`
Email string `validate:"required,email,gt=0,lte=500" json:"email"`
Password string `validate:"required,gte=8,lte=32" json:"password"`
LoginUserID string `json:"-"`
}
AddUserReq add user request
type AddUsersErrorData ¶ added in v1.1.2
type AddUsersErrorData struct {
// optional. error field name.
Field string `json:"field"`
// must. error line number.
Line int `json:"line"`
// must. error content.
Content string `json:"content"`
// optional. error message.
ExtraMessage string `json:"extra_message"`
}
func (*AddUsersErrorData) GetErrField ¶ added in v1.1.2
func (e *AddUsersErrorData) GetErrField(ctx context.Context) (errFields []*validator.FormErrorField)
type AddUsersReq ¶ added in v1.1.2
type AddUsersReq struct {
// users info line by line
UsersStr string `json:"users"`
Users []*AddUserReq `json:"-"`
}
AddUsersReq add users request
func (*AddUsersReq) ParseUsers ¶ added in v1.1.2
func (req *AddUsersReq) ParseUsers(ctx context.Context) (errFields []*validator.FormErrorField, err error)
type AdminAnswerInfo ¶
type AdminAnswerInfo struct {
ID string `json:"id"`
QuestionID string `json:"question_id"`
Description string `json:"description"`
CreateTime int64 `json:"create_time"`
UpdateTime int64 `json:"update_time"`
Accepted int `json:"accepted"`
UserID string `json:"-"`
UpdateUserID string `json:"-"`
UserInfo *UserBasicInfo `json:"user_info"`
VoteCount int `json:"vote_count"`
QuestionInfo struct {
Title string `json:"title"`
} `json:"question_info"`
}
type AdminAnswerPageReq ¶ added in v1.1.1
type AdminAnswerPageReq struct {
Page int `validate:"omitempty,min=1" form:"page"`
PageSize int `validate:"omitempty,min=1" form:"page_size"`
StatusCond string `validate:"omitempty,oneof=normal deleted" form:"status"`
Query string `validate:"omitempty,gt=0,lte=100" form:"query"`
QuestionID string `validate:"omitempty,gt=0,lte=24" form:"question_id"`
QuestionTitle string `json:"-"`
AnswerID string `json:"-"`
Status int `json:"-"`
LoginUserID string `json:"-"`
}
AdminAnswerPageReq admin answer page req
func (*AdminAnswerPageReq) Check ¶ added in v1.1.1
func (req *AdminAnswerPageReq) Check() (errField []*validator.FormErrorField, err error)
type AdminQuestionInfo ¶
type AdminQuestionInfo struct {
ID string `json:"id"`
Title string `json:"title"`
VoteCount int `json:"vote_count"`
AnswerCount int `json:"answer_count"`
AcceptedAnswerID string `json:"accepted_answer_id"`
CreateTime int64 `json:"create_time"`
UpdateTime int64 `json:"update_time"`
EditTime int64 `json:"edit_time"`
UserID string `json:"-" `
UserInfo *UserBasicInfo `json:"user_info"`
}
type AdminQuestionPageReq ¶ added in v1.1.1
type AdminQuestionPageReq struct {
Page int `validate:"omitempty,min=1" form:"page"`
PageSize int `validate:"omitempty,min=1" form:"page_size"`
StatusCond string `validate:"omitempty,oneof=normal closed deleted" form:"status"`
Query string `validate:"omitempty,gt=0,lte=100" json:"query" form:"query" `
Status int `json:"-"`
LoginUserID string `json:"-"`
}
func (*AdminQuestionPageReq) Check ¶ added in v1.1.1
func (req *AdminQuestionPageReq) Check() (errField []*validator.FormErrorField, err error)
type AdminSetAnswerStatusRequest ¶ added in v0.5.0
type AgentInfo ¶ added in v1.1.0
type AgentInfo struct {
Name string `json:"name"`
DisplayName string `json:"display_name"`
Icon string `json:"icon"`
Url string `json:"url"`
LoginRedirectURL string `json:"login_redirect_url"`
SignUpRedirectURL string `json:"sign_up_redirect_url"`
ControlCenterItems []*ControlCenter `json:"control_center"`
EnabledOriginalUserSystem bool `json:"enabled_original_user_system"`
}
type AnswerAddReq ¶
type AnswerAddReq struct {
QuestionID string `json:"question_id"`
Content string `validate:"required,notblank,gte=6,lte=65535" json:"content"`
HTML string `json:"-"`
UserID string `json:"-"`
CanEdit bool `json:"-"`
CanDelete bool `json:"-"`
CaptchaID string `json:"captcha_id"`
CaptchaCode string `json:"captcha_code"`
}
func (*AnswerAddReq) Check ¶ added in v1.0.0
func (req *AnswerAddReq) Check() (errFields []*validator.FormErrorField, err error)
type AnswerInfo ¶
type AnswerInfo struct {
ID string `json:"id" xorm:"id"`
QuestionID string `json:"question_id" xorm:"question_id"`
Content string `json:"content" xorm:"content"`
HTML string `json:"html" xorm:"html"`
CreateTime int64 `json:"create_time" xorm:"created"`
UpdateTime int64 `json:"update_time" xorm:"updated"`
Accepted int `json:"accepted"`
UserID string `json:"-"`
UpdateUserID string `json:"-"`
UserInfo *UserBasicInfo `json:"user_info,omitempty"`
UpdateUserInfo *UserBasicInfo `json:"update_user_info,omitempty"`
Collected bool `json:"collected"`
VoteStatus string `json:"vote_status"`
VoteCount int `json:"vote_count"`
QuestionInfo *QuestionInfo `json:"question_info,omitempty"`
Status int `json:"status"`
// MemberActions
MemberActions []*PermissionMemberAction `json:"member_actions"`
}
type AnswerListReq ¶ added in v0.5.0
type AnswerListReq struct {
QuestionID string `json:"question_id" form:"question_id"`
Order string `json:"order" form:"order"`
Page int `json:"page" form:"page"`
PageSize int `json:"page_size" form:"page_size"`
UserID string `json:"-"`
IsAdmin bool `json:"-"`
CanEdit bool `json:"-"`
CanDelete bool `json:"-"`
}
type AnswerUpdateReq ¶
type AnswerUpdateReq struct {
ID string `json:"id"`
QuestionID string `json:"question_id"`
Title string `json:"title"`
Content string `validate:"required,notblank,gte=6,lte=65535" json:"content"`
EditSummary string `validate:"omitempty" json:"edit_summary"`
HTML string `json:"-"`
UserID string `json:"-"`
NoNeedReview bool `json:"-"`
CanEdit bool `json:"-"`
CaptchaID string `json:"captcha_id"`
CaptchaCode string `json:"captcha_code"`
}
func (*AnswerUpdateReq) Check ¶ added in v1.0.0
func (req *AnswerUpdateReq) Check() (errFields []*validator.FormErrorField, err error)
type AnswerUpdateResp ¶ added in v0.5.0
type AnswerUpdateResp struct {
WaitForReview bool `json:"wait_for_review"`
}
AnswerUpdateResp answer update resp
type AvatarInfo ¶
type AvatarInfo struct {
Type string `validate:"omitempty,gt=0,lte=100" json:"type"`
Gravatar string `validate:"omitempty,gt=0,lte=200" json:"gravatar"`
Custom string `validate:"omitempty,gt=0,lte=200" json:"custom"`
}
func CustomAvatar ¶ added in v1.1.0
func CustomAvatar(url string) *AvatarInfo
func (*AvatarInfo) GetURL ¶ added in v1.1.0
func (a *AvatarInfo) GetURL() string
func (*AvatarInfo) ToJsonString ¶ added in v1.1.0
func (a *AvatarInfo) ToJsonString() string
type CheckCanQuestionUpdate ¶ added in v0.5.0
type CloseQuestionMeta ¶
type CloseQuestionReq ¶
type CollectionSwitchDTO ¶
CollectionSwitchDTO collection data transfer object
type CollectionSwitchReq ¶
type CollectionSwitchReq struct {
// object TagID
ObjectID string `validate:"required" json:"object_id"`
// user collection group TagID
GroupID string `validate:"required" json:"group_id"`
}
CollectionSwitchReq switch collection request
type CollectionSwitchResp ¶
type CollectionSwitchResp struct {
ObjectID string `json:"object_id"`
Switch bool `json:"switch"`
ObjectCollectionCount string `json:"object_collection_count"`
}
CollectionSwitchResp switch collection response
type ConfigField ¶ added in v1.1.0
type ConfigField struct {
Name string `json:"name"`
Type string `json:"type"`
Title string `json:"title"`
Description string `json:"description"`
Required bool `json:"required"`
Value any `json:"value"`
UIOptions ConfigFieldUIOptions `json:"ui_options"`
Options []ConfigFieldOption `json:"options,omitempty"`
}
type ConfigFieldOption ¶ added in v1.1.0
type ConfigFieldUIOptions ¶ added in v1.1.0
type ConfigFieldUIOptions struct {
Placeholder string `json:"placeholder,omitempty"`
Rows string `json:"rows,omitempty"`
InputType string `json:"input_type,omitempty"`
Label string `json:"label,omitempty"`
Action *UIOptionAction `json:"action,omitempty"`
Variant string `json:"variant,omitempty"`
Text string `json:"text,omitempty"`
}
type ConnectorInfoResp ¶ added in v1.1.0
type ConnectorUserInfoResp ¶ added in v1.1.0
type ControlCenter ¶ added in v1.1.0
type DashboardInfo ¶ added in v0.3.0
type DashboardInfo struct {
QuestionCount int64 `json:"question_count"`
AnswerCount int64 `json:"answer_count"`
CommentCount int64 `json:"comment_count"`
VoteCount int64 `json:"vote_count"`
UserCount int64 `json:"user_count"`
ReportCount int64 `json:"report_count"`
UploadingFiles bool `json:"uploading_files"`
SMTP bool `json:"smtp"`
HTTPS bool `json:"https"`
TimeZone string `json:"time_zone"`
OccupyingStorageSpace string `json:"occupying_storage_space"`
AppStartTime string `json:"app_start_time"`
VersionInfo DashboardInfoVersion `json:"version_info"`
}
type DashboardInfoVersion ¶ added in v0.3.0
type EmailCodeContent ¶
type EmailCodeContent struct {
SourceType EmailSourceType `json:"source_type"`
Email string `json:"e_mail"`
UserID string `json:"user_id"`
// Used for unsubscribe notification
NotificationSources []constant.NotificationSource `json:"notification_source,omitempty"`
// Used for third-party login account binding
BindingKey string `json:"binding_key,omitempty"`
}
func (*EmailCodeContent) FromJSONString ¶
func (r *EmailCodeContent) FromJSONString(data string) error
func (*EmailCodeContent) ToJSONString ¶
func (r *EmailCodeContent) ToJSONString() string
type EmailSourceType ¶ added in v1.1.0
type EmailSourceType string
const ( AccountActivationSourceType EmailSourceType = "account-activation" PasswordResetSourceType EmailSourceType = "password-reset" ConfirmNewEmailSourceType EmailSourceType = "password-reset" UnsubscribeSourceType EmailSourceType = "unsubscribe" BindingSourceType EmailSourceType = "binding" )
type ErrTypeData ¶
type ErrTypeData struct {
ErrType string `json:"err_type"`
}
type ExternalLoginBindingUserReq ¶ added in v1.1.0
type ExternalLoginBindingUserReq struct {
Code string `validate:"required,gt=0,lte=500" json:"code"`
Content string `json:"-"`
}
ExternalLoginBindingUserReq external login binding user request
type ExternalLoginBindingUserResp ¶ added in v1.1.0
type ExternalLoginBindingUserResp struct {
AccessToken string `json:"access_token"`
}
ExternalLoginBindingUserResp external login binding user response
type ExternalLoginBindingUserSendEmailReq ¶ added in v1.1.0
type ExternalLoginBindingUserSendEmailReq struct {
BindingKey string `validate:"required,gt=1,lte=100" json:"binding_key"`
Email string `validate:"required,gt=1,lte=512,email" json:"email"`
// 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.
Must bool `json:"must"`
}
ExternalLoginBindingUserSendEmailReq external login binding user request
type ExternalLoginBindingUserSendEmailResp ¶ added in v1.1.0
type ExternalLoginBindingUserSendEmailResp struct {
EmailExistAndMustBeConfirmed bool `json:"email_exist_and_must_be_confirmed"`
AccessToken string `json:"access_token"`
}
ExternalLoginBindingUserSendEmailResp external login binding user response
type ExternalLoginUnbindingReq ¶ added in v1.1.0
type ExternalLoginUnbindingReq struct {
ExternalID string `validate:"required,gt=0,lte=128" json:"external_id"`
UserID string `json:"-"`
}
ExternalLoginUnbindingReq external login unbinding user
type ExternalLoginUserInfoCache ¶ added in v1.1.0
type ExternalLoginUserInfoCache struct {
// Third party identification
// e.g. facebook, twitter, instagram
Provider string
// required. The unique user ID provided by the third-party login
ExternalID string
// optional. This name is used preferentially during registration
DisplayName string
// optional. This username is used preferentially during registration
Username string
// optional. If email exist will bind the existing user
Email string
// optional. The avatar URL provided by the third-party login platform
Avatar string
// optional. The original user information provided by the third-party login platform
MetaInfo string
// optional. The bio provided by the third-party login platform
Bio string
}
ExternalLoginUserInfoCache external login user info
type ExternalNotificationMsg ¶ added in v1.1.2
type ExternalNotificationMsg struct {
ReceiverUserID string `json:"receiver_user_id"`
ReceiverEmail string `json:"receiver_email"`
ReceiverLang string `json:"receiver_lang"`
NewAnswerTemplateRawData *NewAnswerTemplateRawData `json:"new_answer_template_raw_data,omitempty"`
NewInviteAnswerTemplateRawData *NewInviteAnswerTemplateRawData `json:"new_invite_answer_template_raw_data,omitempty"`
NewCommentTemplateRawData *NewCommentTemplateRawData `json:"new_comment_template_raw_data,omitempty"`
NewQuestionTemplateRawData *NewQuestionTemplateRawData `json:"new_question_template_raw_data,omitempty"`
}
func CreateNewQuestionNotificationMsg ¶ added in v1.1.2
func CreateNewQuestionNotificationMsg( questionID, questionTitle, questionAuthorUserID string, tags []*entity.Tag) *ExternalNotificationMsg
type FollowReq ¶
type FollowReq struct {
// object id
ObjectID string `validate:"required" form:"object_id" json:"object_id"`
// is cancel
IsCancel bool `validate:"omitempty" form:"is_cancel" json:"is_cancel"`
}
FollowReq follow object request
type FollowResp ¶
type FollowResp struct {
// the followers of object
Follows int `json:"follows"`
// if user is followed object will be true,otherwise false
IsFollowed bool `json:"is_followed"`
}
FollowResp response object's follows and current user follow status
type ForbiddenResp ¶
type ForbiddenResp struct {
// forbidden reason type
Type string `json:"type" enums:"inactive,url_expired"`
}
ForbiddenResp forbidden response
type GetCloseTypeResp ¶
type GetCloseTypeResp struct {
// report name
Name string `json:"name"`
// report description
Description string `json:"description"`
// report source
Source string `json:"source"`
// report type
Type int `json:"type"`
// is have content
HaveContent bool `json:"have_content"`
// content type
ContentType string `json:"content_type"`
}
type GetCollectionGroupResp ¶
type GetCollectionGroupResp struct {
//
ID int64 `json:"id"`
//
UserID int64 `json:"user_id"`
// the collection group name
Name string `json:"name"`
// mark this group is default, default 1
DefaultGroup int `json:"default_group"`
//
CreateTime time.Time `json:"create_time"`
//
UpdateTime time.Time `json:"update_time"`
}
GetCollectionGroupResp get collection group response
type GetCommentListReq ¶
type GetCommentListReq struct {
// user id
UserID int64 `validate:"omitempty" comment:"user id" form:"user_id"`
// reply user id
ReplyUserID int64 `validate:"omitempty" comment:"reply user id" form:"reply_user_id"`
// reply comment id
ReplyCommentID int64 `validate:"omitempty" comment:"reply comment id" form:"reply_comment_id"`
// object id
ObjectID int64 `validate:"omitempty" comment:"object id" form:"object_id"`
// user vote amount
VoteCount int `validate:"omitempty" comment:"user vote amount" form:"vote_count"`
// comment status(available: 0; deleted: 10)
Status int `validate:"omitempty" comment:"comment status(available: 0; deleted: 10)" form:"status"`
// original comment content
OriginalText string `validate:"omitempty" comment:"original comment content" form:"original_text"`
// parsed comment content
ParsedText string `validate:"omitempty" comment:"parsed comment content" form:"parsed_text"`
}
GetCommentListReq get comment list all request
type GetCommentPersonalWithPageReq ¶
type GetCommentPersonalWithPageReq struct {
// page
Page int `validate:"omitempty,min=1" form:"page"`
// page size
PageSize int `validate:"omitempty,min=1" form:"page_size"`
// username
Username string `validate:"omitempty,gt=0,lte=100" form:"username"`
// user id
UserID string `json:"-"`
}
GetCommentPersonalWithPageReq get comment list page request
type GetCommentPersonalWithPageResp ¶
type GetCommentPersonalWithPageResp struct {
// comment id
CommentID string `json:"comment_id"`
// create time
CreatedAt int64 `json:"created_at"`
// object id
ObjectID string `json:"object_id"`
// question id
QuestionID string `json:"question_id"`
// answer id
AnswerID string `json:"answer_id"`
// object type
ObjectType string `json:"object_type" enums:"question,answer,tag,comment"`
// title
Title string `json:"title"`
// url title
UrlTitle string `json:"url_title"`
// content
Content string `json:"content"`
}
GetCommentPersonalWithPageResp comment response
type GetCommentReq ¶
type GetCommentReq struct {
// object id
ID string `validate:"required" form:"id"`
// user id
UserID string `json:"-"`
// whether user can edit it
CanEdit bool `json:"-"`
// whether user can delete it
CanDelete bool `json:"-"`
}
GetCommentReq get comment list page request
type GetCommentResp ¶
type GetCommentResp struct {
// comment id
CommentID string `json:"comment_id"`
// create time
CreatedAt int64 `json:"created_at"`
// object id
ObjectID string `json:"object_id"`
// user vote amount
VoteCount int `json:"vote_count"`
// current user if already vote this comment
IsVote bool `json:"is_vote"`
// original comment content
OriginalText string `json:"original_text"`
// parsed comment content
ParsedText string `json:"parsed_text"`
// user id
UserID string `json:"user_id"`
// username
Username string `json:"username"`
// user display name
UserDisplayName string `json:"user_display_name"`
// user avatar
UserAvatar string `json:"user_avatar"`
// user status
UserStatus string `json:"user_status"`
// reply user id
ReplyUserID string `json:"reply_user_id"`
// reply user username
ReplyUsername string `json:"reply_username"`
// reply user display name
ReplyUserDisplayName string `json:"reply_user_display_name"`
// reply comment id
ReplyCommentID string `json:"reply_comment_id"`
// reply user status
ReplyUserStatus string `json:"reply_user_status"`
// MemberActions
MemberActions []*PermissionMemberAction `json:"member_actions"`
}
GetCommentResp comment response
func (*GetCommentResp) SetFromComment ¶
func (r *GetCommentResp) SetFromComment(comment *entity.Comment)
type GetCommentWithPageReq ¶
type GetCommentWithPageReq struct {
// page
Page int `validate:"omitempty,min=1" form:"page"`
// page size
PageSize int `validate:"omitempty,min=1" form:"page_size"`
// object id
ObjectID string `validate:"required" form:"object_id"`
// comment id
CommentID string `validate:"omitempty" form:"comment_id"`
// query condition
QueryCond string `validate:"omitempty,oneof=vote" form:"query_cond"`
// user id
UserID string `json:"-"`
// whether user can edit it
CanEdit bool `json:"-"`
// whether user can delete it
CanDelete bool `json:"-"`
}
GetCommentWithPageReq get comment list page request
type GetConfigListReq ¶
type GetConfigListReq struct {
// the config key
Key string `validate:"omitempty,gt=0,lte=32" comment:"the config key" form:"key"`
// the config value, custom data structures and types
Value string `validate:"omitempty,gt=0,lte=128" comment:"the config value, custom data structures and types" form:"value"`
}
GetConfigListReq get config list all request
type GetConfigResp ¶
type GetConfigResp struct {
// config id
ID int `json:"id"`
// the config key
Key string `json:"key"`
// the config value, custom data structures and types
Value string `json:"value"`
}
GetConfigResp get config response
type GetConfigWithPageReq ¶
type GetConfigWithPageReq struct {
// page
Page int `validate:"omitempty,min=1" form:"page"`
// page size
PageSize int `validate:"omitempty,min=1" form:"page_size"`
// the config key
Key string `validate:"omitempty,gt=0,lte=32" comment:"the config key" form:"key"`
// the config value, custom data structures and types
Value string `validate:"omitempty,gt=0,lte=128" comment:"the config value, custom data structures and types" form:"value"`
}
GetConfigWithPageReq get config list page request
type GetCurrentLoginUserInfoResp ¶ added in v1.1.0
type GetCurrentLoginUserInfoResp struct {
*UserLoginResp
Avatar *AvatarInfo `json:"avatar"`
}
func (*GetCurrentLoginUserInfoResp) ConvertFromUserEntity ¶ added in v1.1.0
func (r *GetCurrentLoginUserInfoResp) ConvertFromUserEntity(userInfo *entity.User)
type GetFollowingTagsResp ¶
type GetFollowingTagsResp struct {
// tag id
TagID string `json:"tag_id"`
// slug name
SlugName string `json:"slug_name"`
// display name
DisplayName string `json:"display_name"`
// if main tag slug name is not empty, this tag is synonymous with the main tag
MainTagSlugName string `json:"main_tag_slug_name"`
Recommend bool `json:"recommend"`
Reserved bool `json:"reserved"`
}
GetFollowingTagsResp get following tags response
type GetManifestJsonResp ¶ added in v1.0.0
type GetManifestJsonResp struct {
ManifestVersion int `json:"manifest_version"`
Version string `json:"version"`
Revision string `json:"revision"`
ShortName string `json:"short_name"`
Name string `json:"name"`
Icons map[string]string `json:"icons"`
StartUrl string `json:"start_url"`
Display string `json:"display"`
ThemeColor string `json:"theme_color"`
BackgroundColor string `json:"background_color"`
}
GetManifestJsonResp get manifest json response
type GetObjectTimelineDetailReq ¶ added in v0.5.0
type GetObjectTimelineDetailReq struct {
NewRevisionID string `validate:"required,gt=0,lte=100" form:"new_revision_id"`
OldRevisionID string `validate:"required,gt=0,lte=100" form:"old_revision_id"`
UserID string `json:"-"`
}
GetObjectTimelineDetailReq get object timeline detail request
type GetObjectTimelineDetailResp ¶ added in v0.5.0
type GetObjectTimelineDetailResp struct {
NewRevision *ObjectTimelineDetail `json:"new_revision"`
OldRevision *ObjectTimelineDetail `json:"old_revision"`
}
GetObjectTimelineDetailResp get object timeline detail response
type GetObjectTimelineReq ¶ added in v0.5.0
type GetObjectTimelineReq struct {
ObjectID string `validate:"omitempty,gt=0,lte=100" form:"object_id"`
ShowVote bool `validate:"omitempty" form:"show_vote"`
UserID string `json:"-"`
IsAdmin bool `json:"-"`
}
GetObjectTimelineReq get object timeline request
type GetObjectTimelineResp ¶ added in v0.5.0
type GetObjectTimelineResp struct {
ObjectInfo *ActObjectInfo `json:"object_info"`
Timeline []*ActObjectTimeline `json:"timeline"`
}
GetObjectTimelineResp get object timeline response
type GetOtherUserInfoByUsernameResp ¶
type GetOtherUserInfoByUsernameResp struct {
// user id
ID string `json:"id"`
// create time
CreatedAt int64 `json:"created_at"`
// last login date
LastLoginDate int64 `json:"last_login_date"`
// username
Username string `json:"username"`
// email
// follow count
FollowCount int `json:"follow_count"`
// answer count
AnswerCount int `json:"answer_count"`
// question count
QuestionCount int `json:"question_count"`
// rank
Rank int `json:"rank"`
// display name
DisplayName string `json:"display_name"`
// avatar
Avatar string `json:"avatar"`
// mobile
Mobile string `json:"mobile"`
// bio markdown
Bio string `json:"bio"`
// bio html
BioHTML string `json:"bio_html"`
// website
Website string `json:"website"`
// location
Location string `json:"location"`
Status string `json:"status"`
StatusMsg string `json:"status_msg,omitempty"`
}
GetOtherUserInfoByUsernameResp get user response
func (*GetOtherUserInfoByUsernameResp) ConvertFromUserEntity ¶ added in v1.1.0
func (r *GetOtherUserInfoByUsernameResp) ConvertFromUserEntity(userInfo *entity.User)
type GetOtherUserInfoResp ¶
type GetOtherUserInfoResp struct {
Info *GetOtherUserInfoByUsernameResp `json:"info"`
}
type GetPermissionReq ¶ added in v1.1.0
type GetPermissionReq struct {
Action string `form:"action"`
Actions []string `validate:"omitempty" form:"actions"`
}
GetPermissionReq get permission request
func (*GetPermissionReq) Check ¶ added in v1.1.0
func (r *GetPermissionReq) Check() (errField []*validator.FormErrorField, err error)
type GetPermissionResp ¶ added in v1.1.0
type GetPermissionResp struct {
HasPermission bool `json:"has_permission"`
// only not allow, will return this tip
NoPermissionTip string `json:"no_permission_tip"`
}
GetPermissionResp get permission response
type GetPluginConfigReq ¶ added in v1.1.0
type GetPluginConfigReq struct {
PluginSlugName string `validate:"required,gt=1,lte=100" form:"plugin_slug_name"`
}
type GetPluginConfigResp ¶ added in v1.1.0
type GetPluginConfigResp struct {
Name string `json:"name"`
SlugName string `json:"slug_name"`
Description string `json:"description"`
Version string `json:"version"`
ConfigFields []ConfigField `json:"config_fields"`
}
func (*GetPluginConfigResp) SetConfigFields ¶ added in v1.1.0
func (g *GetPluginConfigResp) SetConfigFields(ctx *gin.Context, fields []plugin.ConfigField)
type GetPluginListReq ¶ added in v1.1.0
type GetPluginListReq struct {
Status PluginStatus `form:"status"`
HaveConfig bool `form:"have_config"`
}
type GetPluginListResp ¶ added in v1.1.0
type GetPrivilegesConfigResp ¶ added in v1.1.0
type GetPrivilegesConfigResp struct {
Options []*PrivilegeOption `json:"options"`
SelectedLevel PrivilegeLevel `json:"selected_level"`
}
GetPrivilegesConfigResp get privileges config response
type GetRankPersonalPageResp ¶ added in v1.1.0
type GetRankPersonalPageResp struct {
// create time
CreatedAt int64 `json:"created_at"`
// object id
ObjectID string `json:"object_id"`
// question id
QuestionID string `json:"question_id"`
// answer id
AnswerID string `json:"answer_id"`
// object type
ObjectType string `json:"object_type" enums:"question,answer,tag,comment"`
// title
Title string `json:"title"`
// url title
UrlTitle string `json:"url_title"`
// content
Content string `json:"content"`
// reputation
Reputation int `json:"reputation"`
// rank type
RankType string `json:"rank_type"`
}
GetRankPersonalPageResp rank response
type GetRankPersonalWithPageReq ¶
type GetRankPersonalWithPageReq struct {
// page
Page int `validate:"omitempty,min=1" form:"page"`
// page size
PageSize int `validate:"omitempty,min=1" form:"page_size"`
// username
Username string `validate:"omitempty,gt=0,lte=100" form:"username"`
// user id
UserID string `json:"-"`
}
GetRankPersonalWithPageReq get rank list page request
type GetReportListPageDTO ¶
GetReportListPageDTO report list data transfer object
type GetReportListPageResp ¶
type GetReportListPageResp struct {
ID string `json:"id"`
ReportedUser *UserBasicInfo `json:"reported_user"`
ReportUser *UserBasicInfo `json:"report_user"`
Content string `json:"content"`
FlaggedContent string `json:"flagged_content"`
OType string `json:"object_type"`
ObjectID string `json:"-"`
QuestionID string `json:"question_id"`
AnswerID string `json:"answer_id"`
CommentID string `json:"comment_id"`
Title string `json:"title"`
Excerpt string `json:"excerpt"`
// create time
CreatedAt time.Time `json:"-"`
CreatedAtParsed int64 `json:"created_at"`
UpdatedAt time.Time `json:"_"`
UpdatedAtParsed int64 `json:"updated_at"`
Reason *ReasonItem `json:"reason"`
FlaggedReason *ReasonItem `json:"flagged_reason"`
UserID string `json:"-"`
ReportedUserID string `json:"-"`
Status int `json:"-"`
ObjectType int `json:"-"`
ReportType int `json:"-"`
FlaggedType int `json:"-"`
}
GetReportListPageResp get report list
func (*GetReportListPageResp) Format ¶
func (r *GetReportListPageResp) Format()
Format format result
type GetReportListReq ¶
type GetReportListReq struct {
// report source
Source string `validate:"required,oneof=question answer comment" form:"source"`
}
GetReportListReq get report list all request
type GetReportTypeResp ¶
type GetReportTypeResp struct {
// report name
Name string `json:"name"`
// report description
Description string `json:"description"`
// report source
Source string `json:"source"`
// report type
Type int `json:"type"`
// is have content
HaveContent bool `json:"have_content"`
// content type
ContentType string `json:"content_type"`
}
GetReportTypeResp get report response
type GetRevisionListReq ¶
type GetRevisionListReq struct {
// object id
ObjectID string `validate:"required" comment:"object_id" form:"object_id"`
}
GetRevisionListReq get revision list all request
type GetRevisionResp ¶
type GetRevisionResp struct {
// id
ID string `json:"id"`
// user id
UserID string `json:"use_id"`
// object id
ObjectID string `json:"object_id"`
// object type
ObjectType int `json:"-"`
// title
Title string `json:"title"`
// content
Content string `json:"-"`
// content parsed
ContentParsed interface{} `json:"content"`
// revision status(normal: 1; delete 2)
Status int `json:"status"`
// create time
CreatedAt time.Time `json:"-"`
CreatedAtParsed int64 `json:"create_at"`
UserInfo UserBasicInfo `json:"user_info"`
Log string `json:"reason"`
}
GetRevisionResp get revision response
type GetRoleResp ¶ added in v1.0.0
type GetRoleResp struct {
ID int `json:"id"`
Name string `json:"name"`
Description string `json:"description"`
}
GetRoleResp get role response
type GetSMTPConfigResp ¶
type GetSMTPConfigResp struct {
FromEmail string `json:"from_email"`
FromName string `json:"from_name"`
SMTPHost string `json:"smtp_host"`
SMTPPort int `json:"smtp_port"`
Encryption string `json:"encryption"` // "" SSL
SMTPUsername string `json:"smtp_username"`
SMTPPassword string `json:"smtp_password"`
SMTPAuthentication bool `json:"smtp_authentication"`
}
GetSMTPConfigResp get smtp config response
type GetSiteLegalInfoReq ¶ added in v0.4.0
type GetSiteLegalInfoReq struct {
InfoType string `validate:"required,oneof=tos privacy" form:"info_type"`
}
GetSiteLegalInfoReq site site legal request
func (*GetSiteLegalInfoReq) IsPrivacy ¶ added in v0.4.0
func (r *GetSiteLegalInfoReq) IsPrivacy() bool
func (*GetSiteLegalInfoReq) IsTOS ¶ added in v0.4.0
func (r *GetSiteLegalInfoReq) IsTOS() bool
type GetSiteLegalInfoResp ¶ added in v0.4.0
type GetSiteLegalInfoResp struct {
TermsOfServiceOriginalText string `json:"terms_of_service_original_text,omitempty"`
TermsOfServiceParsedText string `json:"terms_of_service_parsed_text,omitempty"`
PrivacyPolicyOriginalText string `json:"privacy_policy_original_text,omitempty"`
PrivacyPolicyParsedText string `json:"privacy_policy_parsed_text,omitempty"`
}
GetSiteLegalInfoResp get site legal info response
type GetTagInfoReq ¶
type GetTagInfoReq struct {
// tag id
ID string `validate:"omitempty" form:"id"`
// tag slug name
Name string `validate:"omitempty,gt=0,lte=35" form:"name"`
// user id
UserID string `json:"-"`
// whether user can edit it
CanEdit bool `json:"-"`
// whether user can delete it
CanDelete bool `json:"-"`
}
GetTagInfoReq get tag info request
func (*GetTagInfoReq) Check ¶
func (r *GetTagInfoReq) Check() (errFields []*validator.FormErrorField, err error)
type GetTagListListReq ¶
type GetTagListListReq struct {
// tag_id
TagID int64 `validate:"omitempty" comment:"tag_id" form:"tag_id"`
// object_id
ObjectID int64 `validate:"omitempty" comment:"object_id" form:"object_id"`
// tag_list_status(available: 1; deleted: 10)
Status int `validate:"omitempty" comment:"tag_list_status(available: 1; deleted: 10)" form:"status"`
}
GetTagListListReq get tag list list all request
type GetTagListResp ¶
type GetTagListResp struct {
// tag_list_id
ID int64 `json:"id"`
// tag_id
TagID int64 `json:"tag_id"`
// object_id
ObjectID int64 `json:"object_id"`
// tag_list_status(available: 1; deleted: 10)
Status int `json:"status"`
}
GetTagListResp get tag list response
type GetTagListWithPageReq ¶
type GetTagListWithPageReq struct {
// page
Page int `validate:"omitempty,min=1" form:"page"`
// page size
PageSize int `validate:"omitempty,min=1" form:"page_size"`
// tag_id
TagID int64 `validate:"omitempty" comment:"tag_id" form:"tag_id"`
// object_id
ObjectID int64 `validate:"omitempty" comment:"object_id" form:"object_id"`
// tag_list_status(available: 1; deleted: 10)
Status int `validate:"omitempty" comment:"tag_list_status(available: 1; deleted: 10)" form:"status"`
}
GetTagListWithPageReq get tag list list page request
type GetTagPageResp ¶
type GetTagPageResp struct {
// tag_id
TagID string `json:"tag_id"`
// slug_name
SlugName string `json:"slug_name"`
// display_name
DisplayName string `json:"display_name"`
// excerpt
Excerpt string `json:"excerpt"`
//description
Description string `json:"description"`
// original text
OriginalText string `json:"original_text"`
// parsed_text
ParsedText string `json:"parsed_text"`
// follower amount
FollowCount int `json:"follow_count"`
// question amount
QuestionCount int `json:"question_count"`
// is follower
IsFollower bool `json:"is_follower"`
// created time
CreatedAt int64 `json:"created_at"`
// updated time
UpdatedAt int64 `json:"updated_at"`
Recommend bool `json:"recommend"`
Reserved bool `json:"reserved"`
}
GetTagPageResp get tag response
func (*GetTagPageResp) GetExcerpt ¶
func (tr *GetTagPageResp) GetExcerpt()
type GetTagResp ¶
type GetTagResp struct {
// tag id
TagID string `json:"tag_id"`
// created time
CreatedAt int64 `json:"created_at"`
// updated time
UpdatedAt int64 `json:"updated_at"`
// slug name
SlugName string `json:"slug_name"`
// display name
DisplayName string `json:"display_name"`
// excerpt
Excerpt string `json:"excerpt"`
// original text
OriginalText string `json:"original_text"`
// parsed text
ParsedText string `json:"parsed_text"`
// description text
Description string `json:"description"`
// follower amount
FollowCount int `json:"follow_count"`
// question amount
QuestionCount int `json:"question_count"`
// is follower
IsFollower bool `json:"is_follower"`
// MemberActions
MemberActions []*PermissionMemberAction `json:"member_actions"`
// if main tag slug name is not empty, this tag is synonymous with the main tag
MainTagSlugName string `json:"main_tag_slug_name"`
Recommend bool `json:"recommend"`
Reserved bool `json:"reserved"`
}
GetTagResp get tag response
func (*GetTagResp) GetExcerpt ¶
func (tr *GetTagResp) GetExcerpt()
type GetTagSynonymsReq ¶
type GetTagSynonymsReq struct {
// tag_id
TagID string `validate:"required" form:"tag_id"`
// user id
UserID string `json:"-"`
// whether user can edit it
CanEdit bool `json:"-"`
}
GetTagSynonymsReq get tag synonyms request
type GetTagSynonymsResp ¶
type GetTagSynonymsResp struct {
// synonyms
Synonyms []*TagSynonym `json:"synonyms"`
// MemberActions
MemberActions []*PermissionMemberAction `json:"member_actions"`
}
GetTagSynonymsResp get tag synonyms response
type GetTagWithPageReq ¶
type GetTagWithPageReq struct {
// page
Page int `validate:"omitempty,min=1" form:"page"`
// page size
PageSize int `validate:"omitempty,min=1" form:"page_size"`
// slug_name
SlugName string `validate:"omitempty,gt=0,lte=35" form:"slug_name"`
// display_name
DisplayName string `validate:"omitempty,gt=0,lte=35" form:"display_name"`
// query condition
QueryCond string `validate:"omitempty,oneof=popular name newest" form:"query_cond"`
// user id
UserID string `json:"-"`
}
GetTagWithPageReq get tag list page request
type GetTamplateTagInfoReq ¶ added in v1.0.0
type GetUnreviewedRevisionResp ¶ added in v0.5.0
type GetUnreviewedRevisionResp struct {
Type string `json:"type"`
Info *UnreviewedRevisionInfoInfo `json:"info"`
UnreviewedInfo *GetRevisionResp `json:"unreviewed_info"`
}
type GetUserActivationReq ¶ added in v1.1.1
type GetUserActivationReq struct {
UserID string `validate:"required" form:"user_id"`
}
GetUserActivationReq get user activation
type GetUserActivationResp ¶ added in v1.1.1
type GetUserActivationResp struct {
ActivationURL string `json:"activation_url"`
}
GetUserActivationResp get user activation
type GetUserInfoReq ¶
type GetUserInfoReq struct {
UserID string `validate:"required" json:"user_id"`
}
GetUserInfoReq get user request
type GetUserNotificationConfigResp ¶ added in v1.1.2
type GetUserNotificationConfigResp struct {
NotificationConfig
}
GetUserNotificationConfigResp get user notification config response
type GetUserPageReq ¶
type GetUserPageReq struct {
// page
Page int `validate:"omitempty,min=1" form:"page"`
// page size
PageSize int `validate:"omitempty,min=1" form:"page_size"`
// email
Query string `validate:"omitempty,gt=0,lte=100" form:"query"`
// user status
Status string `validate:"omitempty,oneof=suspended deleted inactive" form:"status"`
// staff, if staff is true means query admin or moderator
Staff bool `validate:"omitempty" form:"staff"`
}
GetUserPageReq get user list page request
func (*GetUserPageReq) IsDeleted ¶
func (r *GetUserPageReq) IsDeleted() bool
func (*GetUserPageReq) IsInactive ¶
func (r *GetUserPageReq) IsInactive() bool
func (*GetUserPageReq) IsSuspended ¶
func (r *GetUserPageReq) IsSuspended() bool
type GetUserPageResp ¶
type GetUserPageResp struct {
// user id
UserID string `json:"user_id"`
// create time
CreatedAt int64 `json:"created_at"`
// delete time
DeletedAt int64 `json:"deleted_at"`
// suspended time
SuspendedAt int64 `json:"suspended_at"`
// username
Username string `json:"username"`
// email
EMail string `json:"e_mail"`
// rank
Rank int `json:"rank"`
// user status(normal,suspended,deleted,inactive)
Status string `json:"status"`
// display name
DisplayName string `json:"display_name"`
// avatar
Avatar string `json:"avatar"`
// role id
RoleID int `json:"role_id"`
// role name
RoleName string `json:"role_name"`
}
GetUserPageResp get user response
type GetVoteWithPageReq ¶
type GetVoteWithPageResp ¶
type GetVoteWithPageResp struct {
// create time
CreatedAt int64 `json:"created_at"`
// object id
ObjectID string `json:"object_id"`
// question id
QuestionID string `json:"question_id"`
// answer id
AnswerID string `json:"answer_id"`
// object type
ObjectType string `json:"object_type" enums:"question,answer,tag,comment"`
// title
Title string `json:"title"`
// url title
UrlTitle string `json:"url_title"`
// content
Content string `json:"content"`
// vote type
VoteType string `json:"vote_type"`
}
type LoadingAction ¶ added in v1.1.0
type NewAnswerTemplateData ¶ added in v1.0.2
type NewAnswerTemplateRawData ¶ added in v1.0.2
type NewCommentTemplateData ¶ added in v1.0.2
type NewCommentTemplateRawData ¶ added in v1.0.2
type NewInviteAnswerTemplateData ¶ added in v1.1.0
type NewInviteAnswerTemplateRawData ¶ added in v1.1.0
type NewQuestionTemplateData ¶ added in v1.1.2
type NewQuestionTemplateRawData ¶ added in v1.1.2
type NotificationChannelConfig ¶ added in v1.1.2
type NotificationChannelConfig struct {
Key constant.NotificationChannelKey `json:"key"`
Enable bool `json:"enable"`
}
type NotificationChannels ¶ added in v1.1.2
type NotificationChannels []*NotificationChannelConfig
func NewNotificationChannelsFormJson ¶ added in v1.1.2
func NewNotificationChannelsFormJson(jsonStr string) NotificationChannels
func (*NotificationChannels) CheckEnable ¶ added in v1.1.2
func (n *NotificationChannels) CheckEnable(ch constant.NotificationChannelKey) bool
func (*NotificationChannels) Format ¶ added in v1.1.2
func (n *NotificationChannels) Format(sequences []constant.NotificationChannelKey)
func (*NotificationChannels) ToJsonString ¶ added in v1.1.2
func (n *NotificationChannels) ToJsonString() string
type NotificationConfig ¶ added in v1.1.2
type NotificationConfig struct {
Inbox NotificationChannels `json:"inbox"`
AllNewQuestion NotificationChannels `json:"all_new_question"`
AllNewQuestionForFollowingTags NotificationChannels `json:"all_new_question_for_following_tags"`
}
func NewNotificationConfig ¶ added in v1.1.2
func NewNotificationConfig(configs []*entity.UserNotificationConfig) NotificationConfig
func (*NotificationConfig) CheckEnable ¶ added in v1.1.2
func (n *NotificationConfig) CheckEnable( source constant.NotificationSource, channel constant.NotificationChannelKey) bool
func (*NotificationConfig) Format ¶ added in v1.1.2
func (n *NotificationConfig) Format()
func (*NotificationConfig) FromJsonString ¶ added in v1.1.2
func (n *NotificationConfig) FromJsonString(data string)
func (*NotificationConfig) ToJsonString ¶ added in v1.1.2
func (n *NotificationConfig) ToJsonString() string
type NotificationContent ¶
type NotificationContent struct {
ID string `json:"id"`
TriggerUserID string `json:"-"` //show userid
ReceiverUserID string `json:"-"` // receiver userid
UserInfo *UserBasicInfo `json:"user_info,omitempty"`
ObjectInfo ObjectInfo `json:"object_info"`
Rank int `json:"rank"`
NotificationAction string `json:"notification_action,omitempty"`
Type int `json:"-"` // 1 inbox 2 achievement
IsRead bool `json:"is_read"`
UpdateTime int64 `json:"update_time"`
}
type NotificationMsg ¶
type NotificationMsg struct {
// trigger notification user id
TriggerUserID string
// receive notification user id
ReceiverUserID string
// type 1 inbox 2 achievement
Type int
// notification title
Title string
// notification object
ObjectID string
// notification object type
ObjectType string
// notification action
NotificationAction string
// if true no need to send notification to all followers
NoNeedPushAllFollow bool
// extra info
ExtraInfo map[string]string
}
NotificationMsg notification message
type NotificationSearch ¶
type NotificationSearch struct {
Page int `json:"page" form:"page"` //Query number of pages
PageSize int `json:"page_size" form:"page_size"` //Search page size
Type int `json:"-" form:"-"`
TypeStr string `json:"type" form:"type"` // inbox achievement
InboxTypeStr string `json:"inbox_type" form:"inbox_type"` // inbox achievement
InboxType int `json:"-" form:"-"` // inbox achievement
UserID string `json:"-"`
}
type ObjectInfo ¶
type ObjectTimelineDetail ¶ added in v0.5.0
type ObjectTimelineDetail struct {
Title string `json:"title"`
Tags []*ObjectTimelineTag `json:"tags"`
OriginalText string `json:"original_text"`
SlugName string `json:"slug_name"`
MainTagSlugName string `json:"main_tag_slug_name"`
}
ObjectTimelineDetail object timeline detail
type ObjectTimelineTag ¶ added in v0.5.0
type ObjectTimelineTag struct {
SlugName string `json:"slug_name"`
DisplayName string `json:"display_name"`
MainTagSlugName string `json:"main_tag_slug_name"`
Recommend bool `json:"recommend"`
Reserved bool `json:"reserved"`
}
ObjectTimelineTag object timeline tags
type OnCompleteAction ¶ added in v1.1.0
type Operation ¶
type Operation struct {
Type string `json:"type"`
Description string `json:"description"`
Msg string `json:"msg"`
Time int64 `json:"time"`
Level OperationLevel `json:"level"`
}
type OperationLevel ¶ added in v1.0.6
type OperationLevel string
const ( OperationLevelInfo OperationLevel = "info" OperationLevelDanger OperationLevel = "danger" OperationLevelWarning OperationLevel = "warning" )
type OperationQuestionReq ¶ added in v1.0.9
type PermissionMemberAction ¶
type PermissionMemberAction struct {
Action string `json:"action"`
Name string `json:"name"`
Type string `json:"type"`
}
PermissionMemberAction permission member action
type PermissionTrTplData ¶ added in v1.1.0
type PermissionTrTplData struct {
Rank int
}
PermissionTrTplData template data as for translate permission message
type PersonalAnswerPageReq ¶ added in v1.1.0
type PersonalAnswerPageReq struct {
Page int `validate:"omitempty,min=1" form:"page"`
PageSize int `validate:"omitempty,min=1" form:"page_size"`
OrderCond string `validate:"omitempty,oneof=newest active frequent score unanswered" form:"order"`
Username string `validate:"omitempty,gt=0,lte=100" form:"username"`
LoginUserID string `json:"-"`
}
type PersonalBranding ¶ added in v1.1.0
type PersonalCollectionPageReq ¶ added in v1.1.0
type PersonalQuestionPageReq ¶ added in v1.1.0
type PersonalQuestionPageReq struct {
Page int `validate:"omitempty,min=1" form:"page"`
PageSize int `validate:"omitempty,min=1" form:"page_size"`
OrderCond string `validate:"omitempty,oneof=newest active frequent score unanswered" form:"order"`
Username string `validate:"omitempty,gt=0,lte=100" form:"username"`
LoginUserID string `json:"-"`
}
type PluginStatus ¶ added in v1.1.0
type PluginStatus string
const ( PluginStatusActive PluginStatus = "active" PluginStatusInactive PluginStatus = "inactive" )
type PostRenderReq ¶ added in v1.0.3
type PostRenderReq struct {
Content string `json:"content"`
}
PostRenderReq post render request
type PrivilegeLevel ¶ added in v1.1.0
type PrivilegeLevel int
const ( // PrivilegeLevel1 low PrivilegeLevel1 PrivilegeLevel = 1 // PrivilegeLevel2 medium PrivilegeLevel2 PrivilegeLevel = 2 // PrivilegeLevel3 high PrivilegeLevel3 PrivilegeLevel = 3 )
type PrivilegeOption ¶ added in v1.1.0
type PrivilegeOption struct {
Level PrivilegeLevel `json:"level"`
LevelDesc string `json:"level_desc"`
Privileges []*constant.Privilege `json:"privileges"`
}
PrivilegeOption privilege option
type PrivilegeOptions ¶ added in v1.1.1
type PrivilegeOptions []*PrivilegeOption
var (
DefaultPrivilegeOptions PrivilegeOptions
)
func (PrivilegeOptions) Choose ¶ added in v1.1.1
func (p PrivilegeOptions) Choose(level PrivilegeLevel) (option *PrivilegeOption)
type QAPageJsonLD ¶ added in v1.0.0
type QAPageJsonLD struct {
Context string `json:"@context"`
Type string `json:"@type"`
MainEntity struct {
Type string `json:"@type"`
Name string `json:"name"`
Text string `json:"text"`
AnswerCount int `json:"answerCount"`
UpvoteCount int `json:"upvoteCount"`
DateCreated time.Time `json:"dateCreated"`
Author struct {
Type string `json:"@type"`
Name string `json:"name"`
} `json:"author"`
AcceptedAnswer *AcceptedAnswerItem `json:"acceptedAnswer,omitempty"`
SuggestedAnswer []*SuggestedAnswerItem `json:"suggestedAnswer"`
} `json:"mainEntity"`
}
type QuestionAdd ¶
type QuestionAdd struct {
// question title
Title string `validate:"required,notblank,gte=6,lte=150" json:"title"`
// content
Content string `validate:"required,notblank,gte=6,lte=65535" json:"content"`
// html
HTML string `json:"-"`
// tags
Tags []*TagItem `validate:"required,dive" json:"tags"`
// user id
UserID string `json:"-"`
QuestionPermission
CaptchaID string `json:"captcha_id"` // captcha_id
CaptchaCode string `json:"captcha_code"`
}
func (*QuestionAdd) Check ¶ added in v1.0.0
func (req *QuestionAdd) Check() (errFields []*validator.FormErrorField, err error)
type QuestionAddByAnswer ¶ added in v1.0.8
type QuestionAddByAnswer struct {
// question title
Title string `validate:"required,notblank,gte=6,lte=150" json:"title"`
// content
Content string `validate:"required,notblank,gte=6,lte=65535" json:"content"`
// html
HTML string `json:"-"`
AnswerContent string `validate:"required,notblank,gte=6,lte=65535" json:"answer_content"`
AnswerHTML string `json:"-"`
// tags
Tags []*TagItem `validate:"required,dive" json:"tags"`
// user id
UserID string `json:"-"`
MentionUsernameList []string `validate:"omitempty" json:"mention_username_list"`
QuestionPermission
CaptchaID string `json:"captcha_id"` // captcha_id
CaptchaCode string `json:"captcha_code"`
}
func (*QuestionAddByAnswer) Check ¶ added in v1.0.8
func (req *QuestionAddByAnswer) Check() (errFields []*validator.FormErrorField, err error)
type QuestionBaseInfo ¶
type QuestionBaseInfo struct {
ID string `json:"id" `
Title string `json:"title" xorm:"title"` // title
ViewCount int `json:"view_count" xorm:"view_count"` // view count
AnswerCount int `json:"answer_count" xorm:"answer_count"` // answer count
CollectionCount int `json:"collection_count" xorm:"collection_count"` // collection count
FollowCount int `json:"follow_count" xorm:"follow_count"` // follow count
Status string `json:"status"`
AcceptedAnswer bool `json:"accepted_answer"`
}
type QuestionInfo ¶
type QuestionInfo struct {
ID string `json:"id" `
Title string `json:"title" xorm:"title"` // title
UrlTitle string `json:"url_title" xorm:"url_title"` // title
Content string `json:"content" xorm:"content"` // content
HTML string `json:"html" xorm:"html"` // html
Description string `json:"description"` //description
Tags []*TagResp `json:"tags" ` // tags
ViewCount int `json:"view_count" xorm:"view_count"` // view_count
UniqueViewCount int `json:"unique_view_count" xorm:"unique_view_count"` // unique_view_count
VoteCount int `json:"vote_count" xorm:"vote_count"` // vote_count
AnswerCount int `json:"answer_count" xorm:"answer_count"` // answer count
CollectionCount int `json:"collection_count" xorm:"collection_count"` // collection count
FollowCount int `json:"follow_count" xorm:"follow_count"` // follow count
AcceptedAnswerID string `json:"accepted_answer_id" ` // accepted_answer_id
LastAnswerID string `json:"last_answer_id" ` // last_answer_id
CreateTime int64 `json:"create_time" ` // create_time
UpdateTime int64 `json:"-"` // update_time
PostUpdateTime int64 `json:"update_time"`
QuestionUpdateTime int64 `json:"edit_time"`
Pin int `json:"pin"` // 1: unpin, 2: pin
Show int `json:"show"` // 0: show, 1: hide
Status int `json:"status"`
Operation *Operation `json:"operation,omitempty"`
UserID string `json:"-" `
LastEditUserID string `json:"-" `
LastAnsweredUserID string `json:"-" `
UserInfo *UserBasicInfo `json:"user_info"`
UpdateUserInfo *UserBasicInfo `json:"update_user_info,omitempty"`
LastAnsweredUserInfo *UserBasicInfo `json:"last_answered_user_info,omitempty"`
Answered bool `json:"answered"`
Collected bool `json:"collected"`
VoteStatus string `json:"vote_status"`
IsFollowed bool `json:"is_followed"`
// MemberActions
MemberActions []*PermissionMemberAction `json:"member_actions"`
ExtendsActions []*PermissionMemberAction `json:"extends_actions"`
}
type QuestionPageReq ¶ added in v1.0.2
type QuestionPageReq struct {
Page int `validate:"omitempty,min=1" form:"page"`
PageSize int `validate:"omitempty,min=1" form:"page_size"`
OrderCond string `validate:"omitempty,oneof=newest active frequent score unanswered" form:"order"`
Tag string `validate:"omitempty,gt=0,lte=100" form:"tag"`
Username string `validate:"omitempty,gt=0,lte=100" form:"username"`
InDays int `validate:"omitempty,min=1" form:"in_days"`
LoginUserID string `json:"-"`
UserIDBeSearched string `json:"-"`
TagID string `json:"-"`
}
QuestionPageReq query questions page
type QuestionPageResp ¶ added in v1.0.2
type QuestionPageResp struct {
ID string `json:"id" `
CreatedAt int64 `json:"created_at"`
Title string `json:"title"`
UrlTitle string `json:"url_title"`
Description string `json:"description"`
Pin int `json:"pin"` // 1: unpin, 2: pin
Show int `json:"show"` // 0: show, 1: hide
Status int `json:"status"`
Tags []*TagResp `json:"tags"`
// question statistical information
ViewCount int `json:"view_count"`
UniqueViewCount int `json:"unique_view_count"`
VoteCount int `json:"vote_count"`
AnswerCount int `json:"answer_count"`
CollectionCount int `json:"collection_count"`
FollowCount int `json:"follow_count"`
// answer information
AcceptedAnswerID string `json:"accepted_answer_id"`
LastAnswerID string `json:"last_answer_id"`
LastAnsweredUserID string `json:"-"`
LastAnsweredAt time.Time `json:"-"`
// operator information
OperatedAt int64 `json:"operated_at"`
Operator *QuestionPageRespOperator `json:"operator"`
OperationType string `json:"operation_type"`
}
type QuestionPageRespOperator ¶ added in v1.0.2
type QuestionPermission ¶ added in v0.5.0
type QuestionPermission struct {
// whether user can add it
CanAdd bool `json:"-"`
// whether user can edit it
CanEdit bool `json:"-"`
// whether user can delete it
CanDelete bool `json:"-"`
// whether user can close it
CanClose bool `json:"-"`
// whether user can reopen it
CanReopen bool `json:"-"`
// whether user can pin it
CanPin bool `json:"-"`
CanUnPin bool `json:"-"`
// whether user can hide it
CanHide bool `json:"-"`
CanShow bool `json:"-"`
// whether user can use reserved it
CanUseReservedTag bool `json:"-"`
// whether user can invite other user to answer this question
CanInviteOtherToAnswer bool `json:"-"`
CanAddTag bool `json:"-"`
}
type QuestionUpdate ¶
type QuestionUpdate struct {
// question id
ID string `validate:"required" json:"id"`
// question title
Title string `validate:"required,notblank,gte=6,lte=150" json:"title"`
// content
Content string `validate:"required,notblank,gte=6,lte=65535" json:"content"`
// html
HTML string `json:"-"`
InviteUser []string `validate:"omitempty" json:"invite_user"`
// tags
Tags []*TagItem `validate:"required,dive" json:"tags"`
// edit summary
EditSummary string `validate:"omitempty" json:"edit_summary"`
// user id
UserID string `json:"-"`
NoNeedReview bool `json:"-"`
QuestionPermission
CaptchaID string `json:"captcha_id"` // captcha_id
CaptchaCode string `json:"captcha_code"`
}
func (*QuestionUpdate) Check ¶ added in v1.0.0
func (req *QuestionUpdate) Check() (errFields []*validator.FormErrorField, err error)
type QuestionUpdateInviteUser ¶ added in v1.1.0
type ReasonItem ¶
type RemoteVersion ¶ added in v0.3.0
type RemoveAnswerReq ¶
type RemoveAnswerReq struct {
ID string `validate:"required" json:"id"`
UserID string `json:"-"`
CanDelete bool `json:"-"`
CaptchaID string `json:"captcha_id"`
CaptchaCode string `json:"captcha_code"`
}
RemoveAnswerReq delete answer request
type RemoveCommentReq ¶
type RemoveCommentReq struct {
// comment id
CommentID string `validate:"required" json:"comment_id"`
// user id
UserID string `json:"-"`
CaptchaID string `json:"captcha_id"` // captcha_id
CaptchaCode string `json:"captcha_code"`
}
RemoveCommentReq remove comment
type RemoveConfigReq ¶
type RemoveConfigReq struct {
// config id
ID int `validate:"required" comment:"config id" json:"id"`
}
RemoveConfigReq delete config request
type RemoveQuestionReq ¶
type RemoveQuestionReq struct {
// question id
ID string `validate:"required" json:"id"`
UserID string `json:"-" ` // user_id
IsAdmin bool `json:"-"`
CaptchaID string `json:"captcha_id"` // captcha_id
CaptchaCode string `json:"captcha_code"`
}
RemoveQuestionReq delete question request
type RemoveTagListReq ¶
type RemoveTagListReq struct {
// tag_list_id
ID int64 `validate:"required" comment:"tag_list_id" json:"id"`
}
RemoveTagListReq delete tag list request
type RemoveTagReq ¶
type RemoveTagReq struct {
// tag_id
TagID string `validate:"required" json:"tag_id"`
// user id
UserID string `json:"-"`
}
RemoveTagReq delete tag request
type ReopenQuestionReq ¶ added in v1.0.0
ReopenQuestionReq reopen question request
type ReportHandleReq ¶
type ReportHandleReq struct {
ID string `validate:"required" comment:"report id" form:"id" json:"id"`
FlaggedType int `validate:"required" comment:"flagged type" form:"flagged_type" json:"flagged_type"`
FlaggedContent string `validate:"omitempty" comment:"flagged content" form:"flagged_content" json:"flagged_content"`
}
ReportHandleReq request handle request
type RevisionAuditReq ¶ added in v0.5.0
type RevisionAuditReq struct {
// object id
ID string `validate:"required" comment:"id" form:"id"`
Operation string `validate:"required" comment:"operation" form:"operation"` //approve or reject
UserID string `json:"-"`
CanReviewQuestion bool `json:"-"`
CanReviewAnswer bool `json:"-"`
CanReviewTag bool `json:"-"`
}
type RevisionSearch ¶ added in v0.5.0
type RevisionSearch struct {
Page int `json:"page" form:"page"` // Query number of pages
CanReviewQuestion bool `json:"-"`
CanReviewAnswer bool `json:"-"`
CanReviewTag bool `json:"-"`
UserID string `json:"-"`
}
func (RevisionSearch) GetCanReviewObjectTypes ¶ added in v0.5.0
func (r RevisionSearch) GetCanReviewObjectTypes() []int
type SearchCondition ¶ added in v1.1.1
type SearchCondition struct {
// search target type: all/question/answer
TargetType string
// search query user id
UserID string
// vote amount
VoteAmount int
// only show not accepted answer's question
NotAccepted bool
// view amount
Views int
// answer count
AnswerAmount int
// only show accepted answer
Accepted bool
// only show this question's answer
QuestionID string
// search query tags
Tags []string
// search query keywords
Words []string
}
func (*SearchCondition) Convert2PluginSearchCond ¶ added in v1.1.1
func (s *SearchCondition) Convert2PluginSearchCond(page, pageSize int, order string) *plugin.SearchBasicCond
Convert2PluginSearchCond convert to plugin search condition
func (*SearchCondition) SearchAll ¶ added in v1.1.1
func (s *SearchCondition) SearchAll() bool
SearchAll check if search all
func (*SearchCondition) SearchAnswer ¶ added in v1.1.1
func (s *SearchCondition) SearchAnswer() bool
SearchAnswer check if search only need answer
func (*SearchCondition) SearchQuestion ¶ added in v1.1.1
func (s *SearchCondition) SearchQuestion() bool
SearchQuestion check if search only need question
type SearchDTO ¶
type SearchDTO struct {
UserID string // UserID current login user ID
Query string `validate:"required,gte=1,lte=60" json:"q" form:"q"` // Query the query string
Page int `validate:"omitempty,min=1" form:"page,default=1" json:"page"` //Query number of pages
Size int `validate:"omitempty,min=1,max=50" form:"size,default=30" json:"size"` //Search page size
Order string `` /* 137-byte string literal not displayed */
CaptchaID string `json:"captcha_id"` // captcha_id
CaptchaCode string `json:"captcha_code"`
}
type SearchDescResp ¶ added in v1.1.2
type SearchObject ¶
type SearchObject struct {
ID string `json:"id"`
QuestionID string `json:"question_id"`
Title string `json:"title"`
Excerpt string `json:"excerpt"`
CreatedAtParsed int64 `json:"created_at"`
VoteCount int `json:"vote_count"`
Accepted bool `json:"accepted"`
AnswerCount int `json:"answer_count"`
// user info
UserInfo *SearchObjectUser `json:"user_info"`
// tags
Tags []*TagResp `json:"tags"`
// Status
StatusStr string `json:"status"`
}
type SearchObjectUser ¶ added in v1.1.3
type SearchResp ¶
type SearchResp struct {
Total int64 `json:"count"`
// search response
SearchResults []*SearchResult `json:"list"`
}
type SearchResult ¶ added in v1.1.2
type SearchResult struct {
// object_type
ObjectType string `json:"object_type"`
// this object
Object *SearchObject `json:"object"`
}
type SearchTagLikeReq ¶
type SearchTagLikeReq struct {
// tag
Tag string `validate:"omitempty" form:"tag"`
IsAdmin bool `json:"-"`
}
SearchTagLikeReq get tag list all request
type SearchTagLikeResp ¶ added in v0.4.0
type SearchTagsBySlugName ¶ added in v1.0.5
type SendUserActivationReq ¶ added in v1.1.1
type SendUserActivationReq struct {
UserID string `validate:"required" json:"user_id"`
}
SendUserActivationReq send user activation
type SimpleObjectInfo ¶
type SimpleObjectInfo struct {
ObjectID string `json:"object_id"`
ObjectCreatorUserID string `json:"object_creator_user_id"`
QuestionID string `json:"question_id"`
QuestionStatus int `json:"status"`
AnswerID string `json:"answer_id"`
CommentID string `json:"comment_id"`
TagID string `json:"tag_id"`
ObjectType string `json:"object_type"`
Title string `json:"title"`
Content string `json:"content"`
}
SimpleObjectInfo simple object info
type SiteBrandingReq ¶ added in v0.4.0
type SiteBrandingReq struct {
Logo string `validate:"omitempty,gt=0,lte=512" form:"logo" json:"logo"`
MobileLogo string `validate:"omitempty,gt=0,lte=512" form:"mobile_logo" json:"mobile_logo"`
SquareIcon string `validate:"omitempty,gt=0,lte=512" form:"square_icon" json:"square_icon"`
Favicon string `validate:"omitempty,gt=0,lte=512" form:"favicon" json:"favicon"`
}
SiteBrandingReq site branding request
type SiteBrandingResp ¶ added in v0.4.0
type SiteBrandingResp SiteBrandingReq
SiteBrandingResp site branding response
type SiteCustomCssHTMLReq ¶ added in v1.0.0
type SiteCustomCssHTMLReq struct {
CustomHead string `validate:"omitempty,gt=0,lte=65536" json:"custom_head"`
CustomCss string `validate:"omitempty,gt=0,lte=65536" json:"custom_css"`
CustomHeader string `validate:"omitempty,gt=0,lte=65536" json:"custom_header"`
CustomSideBar string `validate:"omitempty,gt=0,lte=65536" json:"custom_sidebar"`
}
SiteCustomCssHTMLReq site custom css html
type SiteCustomCssHTMLResp ¶ added in v1.0.0
type SiteCustomCssHTMLResp SiteCustomCssHTMLReq
SiteCustomCssHTMLResp site custom css html response
type SiteGeneralReq ¶
type SiteGeneralReq struct {
Name string `validate:"required,sanitizer,gt=1,lte=128" form:"name" json:"name"`
ShortDescription string `validate:"omitempty,sanitizer,gt=3,lte=255" form:"short_description" json:"short_description"`
Description string `validate:"omitempty,sanitizer,gt=3,lte=2000" form:"description" json:"description"`
SiteUrl string `validate:"required,sanitizer,gt=1,lte=512,url" form:"site_url" json:"site_url"`
ContactEmail string `validate:"required,sanitizer,gt=1,lte=512,email" form:"contact_email" json:"contact_email"`
}
SiteGeneralReq site general request
func (*SiteGeneralReq) FormatSiteUrl ¶ added in v0.3.0
func (r *SiteGeneralReq) FormatSiteUrl()
type SiteInfoResp ¶
type SiteInfoResp struct {
General *SiteGeneralResp `json:"general"`
Interface *SiteInterfaceResp `json:"interface"`
Branding *SiteBrandingResp `json:"branding"`
Login *SiteLoginResp `json:"login"`
Theme *SiteThemeResp `json:"theme"`
CustomCssHtml *SiteCustomCssHTMLResp `json:"custom_css_html"`
SiteSeo *SiteSeoResp `json:"site_seo"`
SiteUsers *SiteUsersResp `json:"site_users"`
Version string `json:"version"`
Revision string `json:"revision"`
}
SiteInfoResp get site info response
type SiteInterfaceReq ¶
type SiteInterfaceReq struct {
Language string `validate:"required,gt=1,lte=128" form:"language" json:"language"`
TimeZone string `validate:"required,gt=1,lte=128" form:"time_zone" json:"time_zone"`
}
SiteInterfaceReq site interface request
type SiteInterfaceResp ¶
type SiteInterfaceResp SiteInterfaceReq
SiteInterfaceResp site interface response
type SiteLegalReq ¶ added in v0.4.0
type SiteLegalReq struct {
TermsOfServiceOriginalText string `json:"terms_of_service_original_text"`
TermsOfServiceParsedText string `json:"terms_of_service_parsed_text"`
PrivacyPolicyOriginalText string `json:"privacy_policy_original_text"`
PrivacyPolicyParsedText string `json:"privacy_policy_parsed_text"`
}
SiteLegalReq site branding request
type SiteLegalResp ¶ added in v0.4.0
type SiteLegalResp SiteLegalReq
SiteLegalResp site write response
type SiteLoginReq ¶ added in v1.0.0
type SiteLoginReq struct {
AllowNewRegistrations bool `json:"allow_new_registrations"`
AllowEmailRegistrations bool `json:"allow_email_registrations"`
LoginRequired bool `json:"login_required"`
AllowEmailDomains []string `json:"allow_email_domains"`
}
SiteLoginReq site login request
type SiteLoginResp ¶ added in v1.0.0
type SiteLoginResp SiteLoginReq
SiteLoginResp site login response
type SiteMapList ¶ added in v1.0.0
type SiteMapList struct {
QuestionIDs []*SiteMapQuestionInfo `json:"question_ids"`
MaxPageNum []int `json:"max_page_num"`
}
type SiteMapPageList ¶ added in v1.0.0
type SiteMapPageList struct {
PageData []*SiteMapQuestionInfo `json:"page_data"`
}
type SiteMapQuestionInfo ¶ added in v1.0.0
type SiteSeoReq ¶ added in v1.0.0
type SiteSeoResp ¶ added in v1.0.0
type SiteSeoResp SiteSeoReq
SiteSeoResp site write response
func (*SiteSeoResp) IsShortLink ¶ added in v1.1.1
func (s *SiteSeoResp) IsShortLink() bool
type SiteThemeReq ¶ added in v1.0.0
type SiteThemeReq struct {
Theme string `validate:"required,gt=0,lte=255" json:"theme"`
ThemeConfig map[string]interface{} `validate:"omitempty" json:"theme_config"`
}
SiteThemeReq site theme config
type SiteThemeResp ¶ added in v1.0.0
type SiteThemeResp struct {
ThemeOptions []*ThemeOption `json:"theme_options"`
Theme string `json:"theme"`
ThemeConfig map[string]interface{} `json:"theme_config"`
}
SiteThemeResp site theme response
func (*SiteThemeResp) TrTheme ¶ added in v1.0.0
func (s *SiteThemeResp) TrTheme(ctx context.Context)
type SiteUsersReq ¶ added in v1.1.0
type SiteUsersReq struct {
DefaultAvatar string `validate:"required,oneof=system gravatar" json:"default_avatar"`
GravatarBaseURL string `json:"gravatar_base_url"`
AllowUpdateDisplayName bool `json:"allow_update_display_name"`
AllowUpdateUsername bool `json:"allow_update_username"`
AllowUpdateAvatar bool `json:"allow_update_avatar"`
AllowUpdateBio bool `json:"allow_update_bio"`
AllowUpdateWebsite bool `json:"allow_update_website"`
AllowUpdateLocation bool `json:"allow_update_location"`
}
SiteUsersReq site users config request
type SiteUsersResp ¶ added in v1.1.0
type SiteUsersResp SiteUsersReq
SiteUsersResp site users response
type SiteWriteReq ¶ added in v0.4.0
type SiteWriteReq struct {
RequiredTag bool `validate:"omitempty" form:"required_tag" json:"required_tag"`
RecommendTags []string `validate:"omitempty" form:"recommend_tags" json:"recommend_tags"`
ReservedTags []string `validate:"omitempty" form:"reserved_tags" json:"reserved_tags"`
UserID string `json:"-"`
}
SiteWriteReq site write request
type SiteWriteResp ¶ added in v0.4.0
type SiteWriteResp SiteWriteReq
SiteWriteResp site write response
type SuggestedAnswerItem ¶ added in v1.0.0
type TagItem ¶
type TagItem struct {
// slug_name
SlugName string `validate:"omitempty,gt=0,lte=35" json:"slug_name"`
// display_name
DisplayName string `validate:"omitempty,gt=0,lte=35" json:"display_name"`
// original text
OriginalText string `validate:"omitempty" json:"original_text"`
// parsed text
ParsedText string `json:"-"`
}
type TagResp ¶
type TagResp struct {
ID string `json:"-"`
SlugName string `json:"slug_name"`
DisplayName string `json:"display_name"`
// if main tag slug name is not empty, this tag is synonymous with the main tag
MainTagSlugName string `json:"main_tag_slug_name"`
Recommend bool `json:"recommend"`
Reserved bool `json:"reserved"`
}
type TagSynonym ¶ added in v0.5.0
type TagSynonym struct {
// tag id
TagID string `json:"tag_id"`
// slug name
SlugName string `json:"slug_name"`
// display name
DisplayName string `json:"display_name"`
// if main tag slug name is not empty, this tag is synonymous with the main tag
MainTagSlugName string `json:"main_tag_slug_name"`
}
type TemplateSiteInfoResp ¶ added in v1.0.0
type TemplateSiteInfoResp struct {
General *SiteGeneralResp `json:"general"`
Interface *SiteInterfaceResp `json:"interface"`
Branding *SiteBrandingResp `json:"branding"`
SiteSeo *SiteSeoResp `json:"site_seo"`
CustomCssHtml *SiteCustomCssHTMLResp `json:"custom_css_html"`
Title string
Year string
Canonical string
JsonLD string
Keywords string
Description string
}
type ThemeOption ¶ added in v1.0.0
ThemeOption get label option
type UIOptionAction ¶ added in v1.1.0
type UIOptionAction struct {
Url string `json:"url"`
Method string `json:"method,omitempty"`
Loading *LoadingAction `json:"loading,omitempty"`
OnCompleteAction *OnCompleteAction `json:"on_complete,omitempty"`
}
type UnreviewedRevisionInfoInfo ¶ added in v0.5.0
type UpdateCollectionGroupReq ¶
type UpdateCollectionGroupReq struct {
//
ID int64 `validate:"required" comment:"" json:"id"`
//
UserID int64 `validate:"omitempty" comment:"" json:"user_id"`
// the collection group name
Name string `validate:"omitempty,gt=0,lte=50" comment:"the collection group name" json:"name"`
// mark this group is default, default 1
DefaultGroup int `validate:"omitempty" comment:"mark this group is default, default 1" json:"default_group"`
//
CreateTime time.Time `validate:"omitempty" comment:"" json:"create_time"`
//
UpdateTime time.Time `validate:"omitempty" comment:"" json:"update_time"`
}
UpdateCollectionGroupReq update collection group request
type UpdateCommentReq ¶
type UpdateCommentReq struct {
// comment id
CommentID string `validate:"required" json:"comment_id"`
// original comment content
OriginalText string `validate:"required,notblank,gte=2,lte=600" json:"original_text"`
// parsed comment content
ParsedText string `json:"-"`
// user id
UserID string `json:"-"`
IsAdmin bool `json:"-"`
// whether user can edit it
CanEdit bool `json:"-"`
// whether user can delete it
CaptchaID string `json:"captcha_id"` // captcha_id
CaptchaCode string `json:"captcha_code"`
}
UpdateCommentReq update comment request
func (*UpdateCommentReq) Check ¶ added in v1.0.0
func (req *UpdateCommentReq) Check() (errFields []*validator.FormErrorField, err error)
type UpdateCommentResp ¶ added in v1.1.3
type UpdateConfigReq ¶
type UpdateConfigReq struct {
// config id
ID int `validate:"required" comment:"config id" json:"id"`
// the config key
Key string `validate:"omitempty,gt=0,lte=32" comment:"the config key" json:"key"`
// the config value, custom data structures and types
Value string `validate:"omitempty,gt=0,lte=128" comment:"the config value, custom data structures and types" json:"value"`
}
UpdateConfigReq update config request
type UpdateFollowTagsReq ¶
type UpdateFollowTagsReq struct {
// tag slug name list
SlugNameList []string `json:"slug_name_list"`
// user id
UserID string `json:"-"`
}
UpdateFollowTagsReq update user follow tags
type UpdateInfoRequest ¶
type UpdateInfoRequest struct {
// display_name
DisplayName string `validate:"omitempty,gt=0,lte=30" json:"display_name"`
// username
Username string `validate:"omitempty,gt=3,lte=30" json:"username"`
// avatar
Avatar AvatarInfo `json:"avatar"`
// bio
Bio string `validate:"omitempty,gt=0,lte=4096" json:"bio"`
// bio
BioHTML string `json:"-"`
// website
Website string `validate:"omitempty,gt=0,lte=500" json:"website"`
// location
Location string `validate:"omitempty,gt=0,lte=100" json:"location"`
// user id
UserID string `json:"-"`
}
func (*UpdateInfoRequest) Check ¶
func (req *UpdateInfoRequest) Check() (errFields []*validator.FormErrorField, err error)
type UpdatePluginConfigReq ¶ added in v1.1.0
type UpdatePluginStatusReq ¶ added in v1.1.0
type UpdatePrivilegesConfigReq ¶ added in v1.1.0
type UpdatePrivilegesConfigReq struct {
Level PrivilegeLevel `validate:"required,min=1,max=3" json:"level"`
}
UpdatePrivilegesConfigReq update privileges config request
type UpdateQuestionResp ¶ added in v0.5.0
type UpdateQuestionResp struct {
WaitForReview bool `json:"wait_for_review"`
}
UpdateQuestionResp update question resp
type UpdateSMTPConfigReq ¶
type UpdateSMTPConfigReq struct {
FromEmail string `validate:"omitempty,gt=0,lte=256" json:"from_email"`
FromName string `validate:"omitempty,gt=0,lte=256" json:"from_name"`
SMTPHost string `validate:"omitempty,gt=0,lte=256" json:"smtp_host"`
SMTPPort int `validate:"omitempty,min=1,max=65535" json:"smtp_port"`
Encryption string `validate:"omitempty,oneof=SSL" json:"encryption"` // "" SSL
SMTPUsername string `validate:"omitempty,gt=0,lte=256" json:"smtp_username"`
SMTPPassword string `validate:"omitempty,gt=0,lte=256" json:"smtp_password"`
SMTPAuthentication bool `validate:"omitempty" json:"smtp_authentication"`
TestEmailRecipient string `validate:"omitempty,email" json:"test_email_recipient"`
}
UpdateSMTPConfigReq get smtp config request
func (*UpdateSMTPConfigReq) Check ¶ added in v1.0.2
func (r *UpdateSMTPConfigReq) Check() (errField []*validator.FormErrorField, err error)
type UpdateTagListReq ¶
type UpdateTagListReq struct {
// tag_list_id
ID int64 `validate:"required" comment:"tag_list_id" json:"id"`
// tag_id
TagID int64 `validate:"omitempty" comment:"tag_id" json:"tag_id"`
// object_id
ObjectID int64 `validate:"omitempty" comment:"object_id" json:"object_id"`
// tag_list_status(available: 1; deleted: 10)
Status int `validate:"omitempty" comment:"tag_list_status(available: 1; deleted: 10)" json:"status"`
}
UpdateTagListReq update tag list request
type UpdateTagReq ¶
type UpdateTagReq struct {
// tag_id
TagID string `validate:"required" json:"tag_id"`
// slug_name
SlugName string `validate:"omitempty,gt=0,lte=35" json:"slug_name"`
// display_name
DisplayName string `validate:"omitempty,gt=0,lte=35" json:"display_name"`
// original text
OriginalText string `validate:"omitempty" json:"original_text"`
// parsed text
ParsedText string `json:"-"`
// edit summary
EditSummary string `validate:"omitempty" json:"edit_summary"`
// user id
UserID string `json:"-"`
NoNeedReview bool `json:"-"`
}
UpdateTagReq update tag request
func (*UpdateTagReq) Check ¶
func (r *UpdateTagReq) Check() (errFields []*validator.FormErrorField, err error)
type UpdateTagResp ¶ added in v0.5.0
type UpdateTagResp struct {
WaitForReview bool `json:"wait_for_review"`
}
UpdateTagResp update tag response
type UpdateTagSynonymReq ¶
type UpdateTagSynonymReq struct {
// tag_id
TagID string `validate:"required" json:"tag_id"`
// synonym tag list
SynonymTagList []*TagItem `validate:"required,dive" json:"synonym_tag_list"`
// user id
UserID string `json:"-"`
}
UpdateTagSynonymReq update tag request
func (*UpdateTagSynonymReq) Format ¶
func (req *UpdateTagSynonymReq) Format()
type UpdateUserInterfaceRequest ¶ added in v0.3.0
type UpdateUserInterfaceRequest struct {
// language
Language string `validate:"required,gt=1,lte=100" json:"language"`
// user id
UserId string `json:"-"`
}
UpdateUserInterfaceRequest update user interface request
type UpdateUserNotificationConfigReq ¶ added in v1.1.2
type UpdateUserNotificationConfigReq struct {
NotificationConfig
UserID string `json:"-"`
}
UpdateUserNotificationConfigReq update user notification config request
type UpdateUserPasswordReq ¶ added in v1.0.0
type UpdateUserPasswordReq struct {
UserID string `validate:"required" json:"user_id"`
Password string `validate:"required,gte=8,lte=32" json:"password"`
LoginUserID string `json:"-"`
}
UpdateUserPasswordReq update user password request
type UpdateUserRoleReq ¶ added in v1.0.0
type UpdateUserRoleReq struct {
// user id
UserID string `validate:"required" json:"user_id"`
// role id
RoleID int `validate:"required" json:"role_id"`
// login user id
LoginUserID string `json:"-"`
}
UpdateUserRoleReq update user role request
type UpdateUserStatusReq ¶
type UpdateUserStatusReq struct {
UserID string `validate:"required" json:"user_id"`
Status string `validate:"required,oneof=normal suspended deleted inactive" json:"status" enums:"normal,suspended,deleted,inactive"`
LoginUserID string `json:"-"`
}
UpdateUserStatusReq update user request
func (*UpdateUserStatusReq) IsDeleted ¶
func (r *UpdateUserStatusReq) IsDeleted() bool
func (*UpdateUserStatusReq) IsInactive ¶
func (r *UpdateUserStatusReq) IsInactive() bool
func (*UpdateUserStatusReq) IsNormal ¶
func (r *UpdateUserStatusReq) IsNormal() bool
func (*UpdateUserStatusReq) IsSuspended ¶
func (r *UpdateUserStatusReq) IsSuspended() bool
type UserAnswerInfo ¶
type UserAnswerInfo struct {
AnswerID string `json:"answer_id"`
QuestionID string `json:"question_id"`
Accepted int `json:"accepted"`
VoteCount int `json:"vote_count"`
CreateTime int `json:"create_time"`
UpdateTime int `json:"update_time"`
QuestionInfo struct {
Title string `json:"title"`
UrlTitle string `json:"url_title"`
Tags []interface{} `json:"tags"`
} `json:"question_info"`
}
type UserBasicInfo ¶
type UserBasicInfo struct {
ID string `json:"id"`
Username string `json:"username"`
Rank int `json:"rank"`
DisplayName string `json:"display_name"`
Avatar string `json:"avatar"`
Website string `json:"website"`
Location string `json:"location"`
IPInfo string `json:"ip_info"`
Status string `json:"status"`
}
type UserCenterAdminFunctionAgentResp ¶ added in v1.1.0
type UserCenterAgentResp ¶ added in v1.1.0
type UserCenterPersonalBranding ¶ added in v1.1.0
type UserCenterPersonalBranding struct {
Enabled bool `json:"enabled"`
PersonalBranding []*PersonalBranding `json:"personal_branding"`
}
type UserCenterUserSettingsResp ¶ added in v1.1.0
type UserCenterUserSettingsResp struct {
ProfileSettingAgent UserSettingAgent `json:"profile_setting_agent"`
AccountSettingAgent UserSettingAgent `json:"account_setting_agent"`
}
UserCenterUserSettingsResp user center user info response
type UserChangeEmailSendCodeReq ¶
type UserChangeEmailSendCodeReq struct {
UserVerifyEmailSendReq
Email string `validate:"required,email,gt=0,lte=500" json:"e_mail"`
Pass string `validate:"omitempty,gte=8,lte=32" json:"pass"`
UserID string `json:"-"`
}
type UserEmailLoginReq ¶ added in v1.1.2
type UserEmailLoginReq struct {
Email string `validate:"required,email,gt=0,lte=500" json:"e_mail"`
Pass string `validate:"required,gte=8,lte=32" json:"pass"`
CaptchaID string `json:"captcha_id"`
CaptchaCode string `json:"captcha_code"`
}
UserEmailLoginReq user email login request
type UserExternalLoginResp ¶ added in v1.1.0
type UserExternalLoginResp struct {
BindingKey string `json:"binding_key"`
AccessToken string `json:"access_token"`
// ErrMsg error message, if not empty, means login failed and this message should be displayed.
ErrMsg string `json:"-"`
ErrTitle string `json:"-"`
}
UserExternalLoginResp user external login resp
type UserLoginResp ¶ added in v1.1.0
type UserLoginResp struct {
// user id
ID string `json:"id"`
// create time
CreatedAt int64 `json:"created_at"`
// last login date
LastLoginDate int64 `json:"last_login_date"`
// username
Username string `json:"username"`
// email
EMail string `json:"e_mail"`
// mail status(1 pass 2 to be verified)
MailStatus int `json:"mail_status"`
// notice status(1 on 2off)
NoticeStatus int `json:"notice_status"`
// follow count
FollowCount int `json:"follow_count"`
// answer count
AnswerCount int `json:"answer_count"`
// question count
QuestionCount int `json:"question_count"`
// rank
Rank int `json:"rank"`
// authority group
AuthorityGroup int `json:"authority_group"`
// display name
DisplayName string `json:"display_name"`
// avatar
Avatar string `json:"avatar"`
// mobile
Mobile string `json:"mobile"`
// bio markdown
Bio string `json:"bio"`
// bio html
BioHTML string `json:"bio_html"`
// website
Website string `json:"website"`
// location
Location string `json:"location"`
// ip info
IPInfo string `json:"ip_info"`
// language
Language string `json:"language"`
// access token
AccessToken string `json:"access_token"`
// role id
RoleID int `json:"role_id"`
// user status
Status string `json:"status"`
// user have password
HavePassword bool `json:"have_password"`
}
UserLoginResp get user response
func (*UserLoginResp) ConvertFromUserEntity ¶ added in v1.1.0
func (r *UserLoginResp) ConvertFromUserEntity(userInfo *entity.User)
type UserModifyPasswordReq ¶ added in v1.1.0
type UserModifyPasswordReq struct {
OldPass string `validate:"omitempty,gte=8,lte=32" json:"old_pass"`
Pass string `validate:"required,gte=8,lte=32" json:"pass"`
CaptchaID string `validate:"omitempty,gt=0,lte=500" json:"captcha_id"`
CaptchaCode string `validate:"omitempty,gt=0,lte=500" json:"captcha_code"`
UserID string `json:"-"`
AccessToken string `json:"-"`
}
func (*UserModifyPasswordReq) Check ¶ added in v1.1.0
func (u *UserModifyPasswordReq) Check() (errFields []*validator.FormErrorField, err error)
type UserQuestionInfo ¶
type UserQuestionInfo struct {
ID string `json:"question_id"`
Title string `json:"title"`
UrlTitle string `json:"url_title"`
VoteCount int `json:"vote_count"`
Tags []interface{} `json:"tags"`
ViewCount int `json:"view_count"`
AnswerCount int `json:"answer_count"`
CollectionCount int `json:"collection_count"`
CreatedAt int64 `json:"created_at"`
AcceptedAnswerID string `json:"accepted_answer_id"`
Status string `json:"status"`
}
type UserRankingResp ¶ added in v1.0.0
type UserRankingResp struct {
UsersWithTheMostReputation []*UserRankingSimpleInfo `json:"users_with_the_most_reputation"`
UsersWithTheMostVote []*UserRankingSimpleInfo `json:"users_with_the_most_vote"`
Staffs []*UserRankingSimpleInfo `json:"staffs"`
}
UserRankingResp user ranking response
type UserRankingSimpleInfo ¶ added in v1.0.0
type UserRankingSimpleInfo struct {
// username
Username string `json:"username"`
// rank
Rank int `json:"rank"`
// vote
VoteCount int `json:"vote_count"`
// display name
DisplayName string `json:"display_name"`
// avatar
Avatar string `json:"avatar"`
}
UserRankingSimpleInfo user ranking simple info
type UserRePassWordRequest ¶
type UserRePassWordRequest struct {
Code string `validate:"required,gt=0,lte=100" json:"code"`
Pass string `validate:"required,gt=0,lte=32" json:"pass"`
Content string `json:"-"`
}
func (*UserRePassWordRequest) Check ¶
func (u *UserRePassWordRequest) Check() (errFields []*validator.FormErrorField, err error)
type UserRegisterReq ¶
type UserRegisterReq struct {
Name string `validate:"required,gt=3,lte=30" json:"name"`
Email string `validate:"required,email,gt=0,lte=500" json:"e_mail" `
Pass string `validate:"required,gte=8,lte=32" json:"pass"`
CaptchaID string `json:"captcha_id"`
CaptchaCode string `json:"captcha_code"`
IP string `json:"-" `
}
UserRegisterReq user register request
func (*UserRegisterReq) Check ¶
func (u *UserRegisterReq) Check() (errFields []*validator.FormErrorField, err error)
type UserSettingAgent ¶ added in v1.1.0
type UserUnsubscribeNotificationReq ¶ added in v1.1.2
type UserUnsubscribeNotificationReq struct {
Code string `validate:"required,gt=0,lte=500" json:"code"`
Content string `json:"-"`
}
UserUnsubscribeNotificationReq user unsubscribe email notification request
type UserVerifyEmailReq ¶
type UserVerifyEmailReq struct {
// code
Code string `validate:"required,gt=0,lte=500" form:"code"`
// content
Content string `json:"-"`
}
UserVerifyEmailReq user verify email request
type UserVerifyEmailSendReq ¶
type VoteActivity ¶ added in v1.1.1
VoteActivity vote activity
func (*VoteActivity) HasRank ¶ added in v1.1.1
func (v *VoteActivity) HasRank() int
type VoteOperationInfo ¶ added in v1.1.1
type VoteOperationInfo struct {
// operation object id
ObjectID string
// question answer comment
ObjectType string
// object owner user id
ObjectCreatorUserID string
// operation user id
OperatingUserID string
// vote up
VoteUp bool
// vote down
VoteDown bool
// vote activity info
Activities []*VoteActivity
}
VoteOperationInfo vote operation info
type VoteReq ¶
type VoteReq struct {
ObjectID string `validate:"required" form:"object_id" json:"object_id"` // id
IsCancel bool `validate:"omitempty" form:"is_cancel" json:"is_cancel"` // is cancel
UserID string `json:"-"`
CaptchaID string `json:"captcha_id"` // captcha_id
CaptchaCode string `json:"captcha_code"`
}
Source Files
¶
- activity.go
- answer_activity_schema.go
- answer_schema.go
- backyard_user_schema.go
- collection_group_schema.go
- comment_schema.go
- config_schema.go
- connector_schema.go
- dashboard_schema.go
- email_template.go
- err_schema.go
- follow_schema.go
- forbidden_schema.go
- new_question_queue_schema.go
- notification_schema.go
- permission.go
- plugin_admin_schema.go
- plugin_user_center.go
- question_schema.go
- rank_schema.go
- reason_schema.go
- render_schema.go
- report_schema.go
- revision_schema.go
- role_schema.go
- search_schema.go
- simple_obj_info_schema.go
- siteinfo_schema.go
- sitemap_schema.go
- tag_list_schema.go
- tag_schema.go
- template_schema.go
- theme_schema.go
- user_external_login_schema.go
- user_notification_schema.go
- user_schema.go
- vote_schema.go