MCPcopy Create free account
hub / github.com/53AI/53AIHub / UpdatePrompt

Function UpdatePrompt

api/controller/prompt.go:409–513  ·  view source on GitHub ↗

UpdatePrompt 更新提示词 @Summary 更新提示词 @Description 更新提示词信息,包括提示词的名称、内容、描述、用途类型、排序、自定义配置、状态,以及分组关联和网站配置的增删改。 @Tags Prompt @Accept json @Produce json @Security BearerAuth @Param pid path int true "提示词ID" @Param request body PromptRequest true "提示词信息,包括分组关联和网站配置的增删改"{ "name": "智能写作助手", "logo": "https

(c *gin.Context)

Source from the content-addressed store, hash-verified

407// @Failure 500 {object} model.CommonResponse "服务器内部错误"
408// @Router /api/prompts/{pid} [put]
409func UpdatePrompt(c *gin.Context) {
410 promptID, err := strconv.Atoi(c.Param("pid"))
411 if err != nil {
412 c.JSON(http.StatusBadRequest, model.ParamError.ToResponse(nil))
413 return
414 }
415
416 var promptReq PromptRequest
417 if err = c.ShouldBindJSON(&promptReq); err != nil {
418 c.JSON(http.StatusBadRequest, model.ParamError.ToResponse(err))
419 return
420 }
421
422 eid := config.GetEID(c)
423 prompt, err := model.GetPromptByID(promptID)
424 if err != nil {
425 c.JSON(http.StatusNotFound, model.NotFound.ToResponse(nil))
426 return
427 }
428
429 if prompt.Type == model.PromptTypeSystem && !common.IsAdmin(c) {
430 c.JSON(http.StatusForbidden, model.AuthFailed.ToResponse(nil))
431 return
432 }
433
434 // 检查提示词是否属于当前企业
435 if prompt.Eid != eid {
436 c.JSON(http.StatusNotFound, model.NotFound.ToResponse(nil))
437 return
438 }
439
440 // 开始事务
441 tx := model.DB.Begin()
442 if tx.Error != nil {
443 c.JSON(http.StatusInternalServerError, model.DBError.ToResponse(nil))
444 return
445 }
446
447 // 更新提示词字段
448 prompt.Name = promptReq.Name
449 prompt.Logo = promptReq.Logo
450 prompt.Content = promptReq.Content
451 prompt.Description = promptReq.Description
452 prompt.Sort = promptReq.Sort
453 prompt.CustomConfig = promptReq.CustomConfig
454 if promptReq.Status != nil {
455 prompt.Status = *promptReq.Status
456 }
457
458 links := buildPromptAILinks(nil, promptReq.AILinks)
459
460 // 序列化更新后的 AILinks 为 JSON 字符串
461 linksJSON, err := json.Marshal(links)
462 if err != nil {
463 tx.Rollback()
464 c.JSON(http.StatusInternalServerError, model.ParamError.ToResponse(err))
465 return
466 }

Callers

nothing calls this directly

Calls 5

buildPromptAILinksFunction · 0.85
ToResponseMethod · 0.80
GetEIDMethod · 0.80
LoadPromptGroupsMethod · 0.80
SaveMethod · 0.65

Tested by

no test coverage detected