downvote
All checks were successful
continuous-integration/drone/promote/production Build is passing
continuous-integration/drone/push Build is passing

This commit is contained in:
2024-04-23 21:13:27 +03:00
parent d56846b1cb
commit 5adc151104
5 changed files with 71 additions and 18 deletions

View File

@@ -44,19 +44,7 @@ func (h *FeedbackHandler) GetFeedbacks(params feedback.GetFeedbacksParams) middl
return feedback.NewGetFeedbacksForbidden()
}
return feedback.NewGetFeedbacksOK().WithPayload(feedbacksToAPI(feedbacks))
}
func (h *FeedbackHandler) GetFeedback(params feedback.GetFeedbacksForProjectParams) middleware.Responder {
feedbacks, err := h.feedback.GetByProjectID(params.ProjectID)
if err != nil {
h.logger.Error().Err(err).Msg("Cannot get feedbacks")
return feedback.NewGetFeedbacksForProjectForbidden()
}
return feedback.NewGetFeedbacksForProjectOK().WithPayload(feedbacksToAPI(feedbacks))
return feedback.NewGetFeedbacksOK().WithPayload(feedbacksToAPI(feedbacks, params.SessionUUID))
}
func (h *FeedbackHandler) VoteFeedback(params feedback.UpvoteFeedbackParams) middleware.Responder {
@@ -76,22 +64,22 @@ func (h *FeedbackHandler) GetFeedbacksForProject(params feedback.GetFeedbacksFor
return feedback.NewGetFeedbacksForProjectForbidden()
}
return feedback.NewGetFeedbacksForProjectOK().WithPayload(feedbacksToAPI(feedbacks))
return feedback.NewGetFeedbacksForProjectOK().WithPayload(feedbacksToAPI(feedbacks, params.SessionUUID))
}
func feedbacksToAPI(feedbacks []*dmodels.Feedback) []*models.Feedback {
func feedbacksToAPI(feedbacks []*dmodels.Feedback, sessionUUID string) []*models.Feedback {
apiFeedbacks := make([]*models.Feedback, 0, len(feedbacks))
for _, f := range feedbacks {
apiFeedbacks = append(apiFeedbacks, feedbackToAPI(f))
apiFeedbacks = append(apiFeedbacks, feedbackToAPI(f, sessionUUID))
}
return apiFeedbacks
}
func feedbackToAPI(feedback *dmodels.Feedback) *models.Feedback {
func feedbackToAPI(feedback *dmodels.Feedback, sessionUUID string) *models.Feedback {
var upvoted bool
for _, upvote := range feedback.Upvote {
if upvote.SessionUUID == feedback.SessionUUID {
if upvote.SessionUUID == sessionUUID {
upvoted = true
break
}