MCPcopy Index your code
hub / github.com/53AI/53AIHub / AdminUpdateSkillLibraryStatus

Function AdminUpdateSkillLibraryStatus

api/controller/skill_library_admin.go:457–506  ·  view source on GitHub ↗

AdminUpdateSkillLibraryStatus godoc @Summary 后台更新技能状态 @Description 更新草稿/驳回/启停状态(发布请走 publish 接口) @Tags 技能库-后台 @Accept json @Produce json @Security BearerAuth @Param id path int true "技能ID" @Param request body AdminUpdateSkillStatusRequest true "状态参数" @Success 200 {object} model.CommonResponse @Route

(c *gin.Context)

Source from the content-addressed store, hash-verified

455// @Success 200 {object} model.CommonResponse
456// @Router /api/admin/skill-library/{id}/status [patch]
457func AdminUpdateSkillLibraryStatus(c *gin.Context) {
458 skillID, err := strconv.ParseInt(c.Param("id"), 10, 64)
459 if err != nil || skillID <= 0 {
460 c.JSON(http.StatusBadRequest, model.ParamError.ToResponse(nil))
461 return
462 }
463
464 var req AdminUpdateSkillStatusRequest
465 if err := c.ShouldBindJSON(&req); err != nil {
466 c.JSON(http.StatusBadRequest, model.ParamError.ToErrorResponse(err))
467 return
468 }
469
470 eid := config.GetEID(c)
471 svc := service.NewSkillLibraryService()
472 currentSkill, _, err := svc.GetSkillByIDForAdmin(c.Request.Context(), eid, skillID)
473 if err != nil {
474 toSkillAdminErrorResponse(c, err)
475 return
476 }
477
478 targetPublish := currentSkill.PublishStatus
479 targetAdmin := currentSkill.AdminStatus
480 reqPublishStatus := strings.TrimSpace(req.PublishStatus)
481 reqAdminStatus := strings.TrimSpace(req.AdminStatus)
482 if reqPublishStatus != "" {
483 if reqPublishStatus == model.SkillPublishStatusPublished {
484 c.JSON(http.StatusBadRequest, model.ParamError.ToErrorResponse(errors.New("published 状态请使用 publish 接口")))
485 return
486 }
487 targetPublish = reqPublishStatus
488 }
489 if reqAdminStatus != "" {
490 targetAdmin = reqAdminStatus
491 }
492 if reqPublishStatus == "" && reqAdminStatus == "" {
493 c.JSON(http.StatusBadRequest, model.ParamError.ToErrorResponse(errors.New("publish_status/admin_status 不能同时为空")))
494 return
495 }
496 if err := svc.ValidateSkillStatusCombination(targetPublish, targetAdmin); err != nil {
497 toSkillAdminErrorResponse(c, err)
498 return
499 }
500
501 if err := svc.UpdateSkillStatusDirect(c.Request.Context(), eid, skillID, targetPublish, targetAdmin); err != nil {
502 toSkillAdminErrorResponse(c, err)
503 return
504 }
505 c.JSON(http.StatusOK, model.Success.ToResponse(nil))
506}
507
508// AdminDeleteSkillLibrary godoc
509// @Summary 后台删除技能

Callers

nothing calls this directly

Calls 8

GetSkillByIDForAdminMethod · 0.95
ToResponseMethod · 0.80
ToErrorResponseMethod · 0.80
GetEIDMethod · 0.80
NewMethod · 0.45

Tested by

no test coverage detected