MCPcopy
hub / github.com/kingwrcy/moments / GetMemo

Method GetMemo

backend/handler/memo.go:390–431  ·  view source on GitHub ↗

GetMemo godoc @Tags Memo @Summary 获取单个memo详情 @Accept json @Produce json @Param id query int true "memoID" @Success 200 {object} db.Memo @Router /api/memo/get [post]

(c echo.Context)

Source from the content-addressed store, hash-verified

388// @Success 200 {object} db.Memo
389// @Router /api/memo/get [post]
390func (m MemoHandler) GetMemo(c echo.Context) error {
391 var (
392 memo db.Memo
393 sysConfig db.SysConfig
394 sysConfigVO vo.FullSysConfigVO
395 )
396
397 ctx := c.(CustomContext)
398 currentUser := ctx.CurrentUser()
399
400 m.base.db.First(&sysConfig)
401
402 id, err := strconv.Atoi(c.QueryParam("id"))
403 if err != nil {
404 return FailResp(c, ParamError)
405 }
406
407 latest := c.QueryParam("latest")
408
409 if err = m.base.db.Preload("User", func(x *gorm.DB) *gorm.DB {
410 return x.Select("username", "nickname", "slogan", "id", "avatarUrl", "coverUrl")
411 }).First(&memo, id).Error; errors.Is(err, gorm.ErrRecordNotFound) {
412 return FailResp(c, ParamError)
413 }
414
415 if *memo.ShowType != 1 && (currentUser == nil || currentUser.Id != memo.UserId) {
416 return FailRespWithMsg(c, Fail, "暂无权限查看")
417 }
418
419 var comments []db.Comment
420 tx := m.base.db.Where("memoId = ?", memo.Id).Order("createdAt DESC")
421 if latest != "" {
422 tx.Limit(5)
423 }
424 tx.Find(&comments)
425
426 memo.Comments = comments
427
428 m.handleImgConfigs(&sysConfigVO, &memo)
429
430 return SuccessResp(c, memo)
431}
432
433// SetPinned godoc
434//

Callers

nothing calls this directly

Calls 5

handleImgConfigsMethod · 0.95
FailRespFunction · 0.85
FailRespWithMsgFunction · 0.85
SuccessRespFunction · 0.85
CurrentUserMethod · 0.80

Tested by

no test coverage detected