fix(ingestion): validate required query field in Query handler
Empty or whitespace-only queries would silently pass through to search, returning meaningless results. Also removed the Domain field from queryRequest — it was accepted but silently ignored since search.Query has no domain parameter, which would confuse callers. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
||||
"net/http"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/mathiasbq/hyperguild/ingestion/internal/search"
|
||||
@@ -25,9 +26,8 @@ func NewHandler(brainDir string, logger *slog.Logger) *Handler {
|
||||
}
|
||||
|
||||
type queryRequest struct {
|
||||
Query string `json:"query"`
|
||||
Domain string `json:"domain,omitempty"`
|
||||
Limit int `json:"limit,omitempty"`
|
||||
Query string `json:"query"`
|
||||
Limit int `json:"limit,omitempty"`
|
||||
}
|
||||
|
||||
type writeRequest struct {
|
||||
@@ -42,6 +42,10 @@ func (h *Handler) Query(w http.ResponseWriter, r *http.Request) {
|
||||
http.Error(w, "invalid JSON", http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
if strings.TrimSpace(req.Query) == "" {
|
||||
http.Error(w, "query is required", http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
if req.Limit == 0 {
|
||||
req.Limit = 5
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user