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)
| 388 | // @Success 200 {object} db.Memo |
| 389 | // @Router /api/memo/get [post] |
| 390 | func (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 | // |
nothing calls this directly
no test coverage detected