MCPcopy Index your code
hub / github.com/apache/answer / RemoveQuestion

Method RemoveQuestion

internal/controller/question_controller.go:83–118  ·  view source on GitHub ↗

RemoveQuestion delete question @Summary delete question @Description delete question @Tags Question @Accept json @Produce json @Security ApiKeyAuth @Param data body schema.RemoveQuestionReq true "question" @Success 200 {object} handler.RespBody @Router /answer/api/v1/question [delete]

(ctx *gin.Context)

Source from the content-addressed store, hash-verified

81// @Success 200 {object} handler.RespBody
82// @Router /answer/api/v1/question [delete]
83func (qc *QuestionController) RemoveQuestion(ctx *gin.Context) {
84 req := &schema.RemoveQuestionReq{}
85 if handler.BindAndCheck(ctx, req) {
86 return
87 }
88 req.ID = uid.DeShortID(req.ID)
89 req.UserID = middleware.GetLoginUserIDFromContext(ctx)
90 req.IsAdmin = middleware.GetIsAdminFromContext(ctx)
91 isAdmin := middleware.GetUserIsAdminModerator(ctx)
92 if !isAdmin {
93 captchaPass := qc.actionService.ActionRecordVerifyCaptcha(ctx, entity.CaptchaActionDelete, req.UserID, req.CaptchaID, req.CaptchaCode)
94 if !captchaPass {
95 errFields := append([]*validator.FormErrorField{}, &validator.FormErrorField{
96 ErrorField: "captcha_code",
97 ErrorMsg: translator.Tr(handler.GetLangByCtx(ctx), reason.CaptchaVerificationFailed),
98 })
99 handler.HandleResponse(ctx, errors.BadRequest(reason.CaptchaVerificationFailed), errFields)
100 return
101 }
102 }
103
104 can, err := qc.rankService.CheckOperationPermission(ctx, req.UserID, permission.QuestionDelete, req.ID)
105 if err != nil {
106 handler.HandleResponse(ctx, err, nil)
107 return
108 }
109 if !can {
110 handler.HandleResponse(ctx, errors.Forbidden(reason.RankFailToMeetTheCondition), nil)
111 return
112 }
113 err = qc.questionService.RemoveQuestion(ctx, req)
114 if !isAdmin {
115 qc.actionService.ActionRecordAdd(ctx, entity.CaptchaActionDelete, req.UserID)
116 }
117 handler.HandleResponse(ctx, err, nil)
118}
119
120// OperationQuestion Operation question
121// @Summary Operation question

Callers

nothing calls this directly

Calls 12

BindAndCheckFunction · 0.92
DeShortIDFunction · 0.92
GetIsAdminFromContextFunction · 0.92
GetUserIsAdminModeratorFunction · 0.92
TrFunction · 0.92
GetLangByCtxFunction · 0.92
HandleResponseFunction · 0.92
ActionRecordAddMethod · 0.80
RemoveQuestionMethod · 0.65

Tested by

no test coverage detected