Files
byre/internal/server/reviews.go
T

60 lines
1.4 KiB
Go
Raw Normal View History

package server
import (
2026-10-16 10:44:27 -07:00
"errors"
"net/http"
2026-10-16 10:44:27 -07:00
"g.fc.run/misc/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)
}
2026-10-16 10:44:27 -07:00
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)
}
2026-10-16 10:44:27 -07:00
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)
}