Add replies field to CommentView and update logic to fetch comment replies

This commit is contained in:
2025-10-02 20:16:29 +08:00
parent bc8d59f7a9
commit 1e01e04f7b
2 changed files with 20 additions and 10 deletions

View File

@@ -25,13 +25,14 @@ const (
)
type CommentView struct {
ID uint `json:"id"`
Content string `json:"content"`
CreatedAt time.Time `json:"created_at"`
User UserView `json:"user"`
Images []ImageView `json:"images"`
ReplyCount uint `json:"reply_count"`
ContentTruncated bool `json:"content_truncated"`
ID uint `json:"id"`
Content string `json:"content"`
CreatedAt time.Time `json:"created_at"`
User UserView `json:"user"`
Images []ImageView `json:"images"`
ReplyCount uint `json:"reply_count"`
ContentTruncated bool `json:"content_truncated"`
Replies []CommentView `json:"replies,omitempty"`
}
func (c *Comment) ToView() *CommentView {

View File

@@ -122,9 +122,18 @@ func ListResourceComments(resourceID uint, page int) ([]model.CommentView, int,
res := make([]model.CommentView, 0, len(comments))
for _, c := range comments {
v := *c.ToView()
var truncated bool
v.Content, truncated = restrictCommentLength(v.Content)
v.ContentTruncated = truncated
v.Content, v.ContentTruncated = restrictCommentLength(v.Content)
replies, _, err := dao.GetCommentReplies(c.ID, 1, 3)
if err != nil {
log.Error("Error getting replies for comment:", err)
return nil, 0, model.NewInternalServerError("Error getting replies for comment")
}
v.Replies = make([]model.CommentView, 0, len(replies))
for _, r := range replies {
rv := *r.ToView()
rv.Content, rv.ContentTruncated = restrictCommentLength(rv.Content)
v.Replies = append(v.Replies, rv)
}
res = append(res, v)
}
return res, totalPages, nil