diff --git a/internal/interfaces/rest/handlers/feedback.go b/internal/interfaces/rest/handlers/feedback.go index d954e61..10453e8 100644 --- a/internal/interfaces/rest/handlers/feedback.go +++ b/internal/interfaces/rest/handlers/feedback.go @@ -58,6 +58,15 @@ func (h *FeedbackHandler) UpvoteFeedback(params feedback.UpvoteFeedbackParams) m return feedback.NewUpvoteFeedbackOK() } +func (h *FeedbackHandler) GetFeedbacksForProject(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 feedbacksToAPI(feedbacks []*dmodels.Feedback) []*models.Feedback { apiFeedbacks := make([]*models.Feedback, 0, len(feedbacks)) for _, f := range feedbacks { diff --git a/internal/interfaces/rest/serve.go b/internal/interfaces/rest/serve.go index 68bbe71..4c7b25e 100644 --- a/internal/interfaces/rest/serve.go +++ b/internal/interfaces/rest/serve.go @@ -50,6 +50,8 @@ func StartHTTPServer(s *Server, lifecycle fx.Lifecycle) { // Feedback api.FeedbackCreateFeedbackHandler = feedback.CreateFeedbackHandlerFunc(s.feedback.CreateFeedback) api.FeedbackGetFeedbacksHandler = feedback.GetFeedbacksHandlerFunc(s.feedback.GetFeedbacks) + api.FeedbackUpvoteFeedbackHandler = feedback.UpvoteFeedbackHandlerFunc(s.feedback.UpvoteFeedback) + api.FeedbackGetFeedbacksForProjectHandler = feedback.GetFeedbacksForProjectHandlerFunc(s.feedback.GetFeedbacksForProject) // Add global middleware here server := restapi.NewServer(api)