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

Function AdminUpdateSkillLibrary

api/controller/skill_library_admin.go:400–444  ·  view source on GitHub ↗

AdminUpdateSkillLibrary godoc @Summary 后台更新技能信息 @Description 更新技能基础信息、排序、启停状态、权限分组配置及环境变量 @Tags 技能库-后台 @Accept json @Produce json @Security BearerAuth @Param id path int true "技能ID" @Param request body AdminUpdateSkillRequest true "更新参数" @Success 200 {object} model.CommonResponse @Router /api/admin/

(c *gin.Context)

Source from the content-addressed store, hash-verified

398// @Success 200 {object} model.CommonResponse
399// @Router /api/admin/skill-library/{id} [put]
400func AdminUpdateSkillLibrary(c *gin.Context) {
401 skillID, err := strconv.ParseInt(c.Param("id"), 10, 64)
402 if err != nil || skillID <= 0 {
403 c.JSON(http.StatusBadRequest, model.ParamError.ToResponse(nil))
404 return
405 }
406
407 var req AdminUpdateSkillRequest
408 if err := c.ShouldBindJSON(&req); err != nil {
409 c.JSON(http.StatusBadRequest, model.ParamError.ToErrorResponse(err))
410 return
411 }
412
413 eid := config.GetEID(c)
414 svc := service.NewSkillLibraryService()
415 // 只有当至少有一个分组字段不为空时,才更新权限分组
416 // 否则传 nil,表示不更新权限分组(避免误清空)
417 var allGroupIDs []int64
418 if len(req.GroupIDs) > 0 || len(req.SubscriptionGroupIDs) > 0 || len(req.UserGroupIDs) > 0 {
419 allGroupIDs = make([]int64, 0, len(req.GroupIDs)+len(req.SubscriptionGroupIDs)+len(req.UserGroupIDs))
420 allGroupIDs = append(allGroupIDs, req.GroupIDs...)
421 allGroupIDs = append(allGroupIDs, req.SubscriptionGroupIDs...)
422 allGroupIDs = append(allGroupIDs, req.UserGroupIDs...)
423 }
424 err = svc.UpdateSkillMeta(c.Request.Context(), eid, skillID, &service.UpdateSkillMetaRequest{
425 Sort: req.Sort,
426 DisplayName: req.DisplayName,
427 Description: req.Description,
428 UsageGuide: req.UsageGuide,
429 Logo: req.Logo,
430 Version: req.Version,
431 AdminStatus: req.AdminStatus,
432 PermissionGroupIDs: allGroupIDs,
433 })
434 if err != nil {
435 toSkillAdminErrorResponse(c, err)
436 return
437 }
438 updatedSkill, _, err := svc.GetSkillByIDForAdmin(c.Request.Context(), eid, skillID)
439 if err != nil {
440 toSkillAdminErrorResponse(c, err)
441 return
442 }
443 c.JSON(http.StatusOK, model.Success.ToResponse(updatedSkill))
444}
445
446// AdminUpdateSkillLibraryStatus godoc
447// @Summary 后台更新技能状态

Callers

nothing calls this directly

Calls 6

UpdateSkillMetaMethod · 0.95
GetSkillByIDForAdminMethod · 0.95
ToResponseMethod · 0.80
ToErrorResponseMethod · 0.80
GetEIDMethod · 0.80

Tested by

no test coverage detected