upvote and feedback list
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing

This commit is contained in:
2024-04-22 19:39:41 +03:00
parent 8fb0c0f056
commit 16a03ca5a1
17 changed files with 983 additions and 12 deletions

View File

@@ -38,6 +38,26 @@ func (h *FeedbackHandler) GetFeedbacks(params feedback.GetFeedbacksParams) middl
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 {
return feedback.NewGetFeedbacksForProjectForbidden()
}
return feedback.NewGetFeedbacksForProjectOK().WithPayload(feedbacksToAPI(feedbacks))
}
func (h *FeedbackHandler) UpvoteFeedback(params feedback.UpvoteFeedbackParams) middleware.Responder {
err := h.feedback.Upvote(params.SessionUUID, params.FeedbackUUID)
if err != nil {
return feedback.NewUpvoteFeedbackForbidden()
}
return feedback.NewUpvoteFeedbackOK()
}
func feedbacksToAPI(feedbacks []*dmodels.Feedback) []*models.Feedback {
apiFeedbacks := make([]*models.Feedback, 0, len(feedbacks))
for _, f := range feedbacks {
@@ -51,7 +71,7 @@ func feedbackToAPI(feedback *dmodels.Feedback) *models.Feedback {
return &models.Feedback{
ProjectID: feedback.ProjectID,
Text: feedback.Text,
Type: feedback.Type,
Type: string(feedback.Type),
UserID: feedback.UserID,
CreatedAt: strfmt.DateTime(feedback.CreatedAt),
}