package server import ( "errors" "net/http" "g.fc.run/ai/byre/internal/api" ) func (s *Server) ListReviews(w http.ResponseWriter, r *http.Request, taskID string) { _, err := s.store.GetTask(r.Context(), taskID) if err != nil { writeStoreError(w, err) return } reviews, err := s.store.ListReviews(r.Context(), taskID) if err != nil { writeStoreError(w, err) return } writeJSON(w, http.StatusOK, reviews) } func (s *Server) StopReview(w http.ResponseWriter, r *http.Request, reviewID string) { review, err := s.agents.StopReview(r.Context(), reviewID, "the reviewer was stopped") if err != nil { writeAgentError(w, err) return } writeJSON(w, http.StatusOK, review) } func (s *Server) SetFindingState(w http.ResponseWriter, r *http.Request, reviewID string, index int) { req := api.FindingStateUpdate{} if !readJSON(w, r, &req) { return } if !req.State.Valid() { writeError(w, http.StatusBadRequest, errors.New("state must be fixed or ignored")) return } if index < 0 { writeError(w, http.StatusBadRequest, errors.New("index must not be negative")) return } err := s.store.SetFindingState(r.Context(), reviewID, index, req.State, actor(r)) if err != nil { writeStoreError(w, err) return } review, err := s.store.GetReview(r.Context(), reviewID) if err != nil { writeStoreError(w, err) return } writeJSON(w, http.StatusOK, review) }