35 lines
805 B
Go
35 lines
805 B
Go
package render
|
|
|
|
import (
|
|
"bbs-go/internal/models"
|
|
"bbs-go/internal/pkg/search"
|
|
"bbs-go/internal/services"
|
|
)
|
|
|
|
func BuildSearchTopics(docs []search.TopicDocument) []models.SearchTopicResponse {
|
|
var items []models.SearchTopicResponse
|
|
for _, doc := range docs {
|
|
items = append(items, BuildSearchTopic(doc))
|
|
}
|
|
return items
|
|
}
|
|
|
|
func BuildSearchTopic(doc search.TopicDocument) models.SearchTopicResponse {
|
|
rsp := models.SearchTopicResponse{
|
|
Id: doc.Id,
|
|
Title: doc.Title,
|
|
Summary: doc.Content,
|
|
CreateTime: doc.CreateTime,
|
|
User: BuildUserInfoDefaultIfNull(doc.UserId),
|
|
}
|
|
|
|
if doc.NodeId > 0 {
|
|
node := services.TopicNodeService.Get(doc.NodeId)
|
|
rsp.Node = BuildNode(node)
|
|
}
|
|
|
|
tags := services.TopicService.GetTopicTags(doc.Id)
|
|
rsp.Tags = BuildTags(tags)
|
|
return rsp
|
|
}
|