MCPcopy
hub / github.com/apache/answer / SearchFormatInfo

Method SearchFormatInfo

internal/service/content/answer_service.go:700–740  ·  view source on GitHub ↗
(ctx context.Context, answers []*entity.Answer, req *schema.AnswerListReq)

Source from the content-addressed store, hash-verified

698}
699
700func (as *AnswerService) SearchFormatInfo(ctx context.Context, answers []*entity.Answer, req *schema.AnswerListReq) (
701 []*schema.AnswerInfo, error) {
702 list := make([]*schema.AnswerInfo, 0)
703 objectIDs := make([]string, 0)
704 userIDs := make([]string, 0)
705 for _, info := range answers {
706 item := as.ShowFormat(ctx, info)
707 list = append(list, item)
708 objectIDs = append(objectIDs, info.ID)
709 userIDs = append(userIDs, info.UserID, info.LastEditUserID)
710 }
711
712 userInfoMap, err := as.userCommon.BatchUserBasicInfoByID(ctx, userIDs)
713 if err != nil {
714 return list, err
715 }
716 for _, item := range list {
717 item.UserInfo = userInfoMap[item.UserID]
718 item.UpdateUserInfo = userInfoMap[item.UpdateUserID]
719 }
720 if len(req.UserID) == 0 {
721 return list, nil
722 }
723
724 collectedMap, err := as.collectionCommon.SearchObjectCollected(ctx, req.UserID, objectIDs)
725 if err != nil {
726 return nil, err
727 }
728 for _, item := range list {
729 item.VoteStatus = as.voteRepo.GetVoteStatus(ctx, item.ID, req.UserID)
730 item.Collected = collectedMap[item.ID]
731 item.MemberActions = permission.GetAnswerPermission(ctx,
732 req.UserID,
733 item.UserID,
734 item.Status,
735 req.CanEdit,
736 req.CanDelete,
737 req.CanRecover)
738 }
739 return list, nil
740}
741
742func (as *AnswerService) ShowFormat(ctx context.Context, data *entity.Answer) *schema.AnswerInfo {
743 return as.AnswerCommon.ShowFormat(ctx, data)

Callers 1

SearchListMethod · 0.95

Calls 5

ShowFormatMethod · 0.95
GetAnswerPermissionFunction · 0.92
SearchObjectCollectedMethod · 0.65
GetVoteStatusMethod · 0.65

Tested by

no test coverage detected