Skip to content

Commit 1b59b03

Browse files
committed
first record of ListExptInsightAnalysisRecord would contain feedback info for frontend display
1 parent a07fff1 commit 1b59b03

File tree

2 files changed

+37
-2
lines changed

2 files changed

+37
-2
lines changed

backend/modules/evaluation/application/experiment_app.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1160,7 +1160,6 @@ func (e *experimentApplication) ListExptInsightAnalysisRecord(ctx context.Contex
11601160
UserID: strconv.FormatInt(gptr.Indirect(req.Session.UserID), 10),
11611161
}
11621162
}
1163-
11641163
err = e.auth.Authorization(ctx, &rpc.AuthorizationParam{
11651164
ObjectID: strconv.FormatInt(req.WorkspaceID, 10),
11661165
SpaceID: req.WorkspaceID,
@@ -1169,6 +1168,9 @@ func (e *experimentApplication) ListExptInsightAnalysisRecord(ctx context.Contex
11691168
if err != nil {
11701169
return nil, err
11711170
}
1171+
1172+
// First record contains the upvote/downvote count info for display purpose,
1173+
// Other records' feedback is not necessary for this list api
11721174
records, total, err := e.ListAnalysisRecord(ctx, req.GetWorkspaceID(), req.GetExptID(), entity.NewPage(int(req.GetPageNumber()), int(req.GetPageSize())), session)
11731175
if err != nil {
11741176
return nil, err

backend/modules/evaluation/domain/service/insight_analysis_impl.go

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,40 @@ func (e ExptInsightAnalysisServiceImpl) notifyAnalysisComplete(ctx context.Conte
275275
}
276276

277277
func (e ExptInsightAnalysisServiceImpl) ListAnalysisRecord(ctx context.Context, spaceID, exptID int64, page entity.Page, session *entity.Session) ([]*entity.ExptInsightAnalysisRecord, int64, error) {
278-
return e.repo.ListAnalysisRecord(ctx, spaceID, exptID, page)
278+
analysisRecords, total, err := e.repo.ListAnalysisRecord(ctx, spaceID, exptID, page)
279+
if err != nil {
280+
return nil, 0, err
281+
}
282+
if total == 0 {
283+
return analysisRecords, total, nil
284+
}
285+
286+
firstAnalysisRecord := analysisRecords[0]
287+
288+
upvoteCount, downvoteCount, err := e.repo.CountFeedbackVote(ctx, spaceID, exptID, firstAnalysisRecord.ID)
289+
if err != nil {
290+
// side path, don't block the main flow
291+
logs.CtxWarn(ctx, "CountFeedbackVote failed for space_id: %v, expt_id: %v, record_id: %v, err=%v", spaceID, exptID, firstAnalysisRecord.ID, err)
292+
return analysisRecords, total, nil
293+
}
294+
295+
curUserFeedbackVote, err := e.repo.GetFeedbackVoteByUser(ctx, spaceID, exptID, firstAnalysisRecord.ID, session.UserID)
296+
if err != nil {
297+
// side path, don't block the main flow
298+
logs.CtxWarn(ctx, "GetFeedbackVoteByUser failed for space_id: %v, expt_id: %v, record_id: %v, err=%v", spaceID, exptID, firstAnalysisRecord.ID, err)
299+
return analysisRecords, total, nil
300+
}
301+
firstAnalysisRecord.ExptInsightAnalysisFeedback = entity.ExptInsightAnalysisFeedback{
302+
UpvoteCount: upvoteCount,
303+
DownvoteCount: downvoteCount,
304+
CurrentUserVoteType: entity.None,
305+
}
306+
firstAnalysisRecord.ExptInsightAnalysisFeedback.CurrentUserVoteType = entity.None
307+
if curUserFeedbackVote != nil {
308+
firstAnalysisRecord.ExptInsightAnalysisFeedback.CurrentUserVoteType = curUserFeedbackVote.VoteType
309+
}
310+
311+
return analysisRecords, total, nil
279312
}
280313

281314
func (e ExptInsightAnalysisServiceImpl) DeleteAnalysisRecord(ctx context.Context, spaceID, exptID, recordID int64) error {

0 commit comments

Comments
 (0)