package handlers import ( "context" "encoding/json" "net/http" "git.georgsen.dk/hwlab/internal/research" ) // ResearchHandler handles research-related API endpoints. type ResearchHandler struct { agent *research.Agent } // NewResearchHandler creates a ResearchHandler backed by the given Agent. func NewResearchHandler(agent *research.Agent) *ResearchHandler { return &ResearchHandler{agent: agent} } // TriggerResearch handles POST /api/research/trigger. // It fires a RunOnce cycle in a background goroutine and responds 202 Accepted immediately. func (h *ResearchHandler) TriggerResearch(w http.ResponseWriter, r *http.Request) { go func() { _, _ = h.agent.RunOnce(context.Background()) }() w.Header().Set("Content-Type", "application/json") w.WriteHeader(http.StatusAccepted) json.NewEncoder(w).Encode(map[string]string{"status": "accepted"}) }