internal/adminapi/task_search_handler.go
Rama main · réplica de lectura del repositorio original.
package adminapi
import (
"encoding/json"
"net/http"
"strconv"
"strings"
"github.com/yeomyeonggeori/blueclaw/internal/sessionquery"
)
type TaskSearchHandler struct {
SessionQuery sessionquery.Service
}
func (handler TaskSearchHandler) HandleSearchTaskRuns(responseWriter http.ResponseWriter, request *http.Request) {
query := request.URL.Query()
result, errorValue := handler.SessionQuery.Search(sessionquery.Request{
RequesterPersonID: strings.TrimSpace(query.Get("personID")),
Text: strings.TrimSpace(query.Get("q")),
ConversationID: strings.TrimSpace(query.Get("conversationID")),
Limit: requestedLimit(query.Get("limit")),
})
if errorValue != nil {
http.Error(responseWriter, errorValue.Error(), http.StatusBadRequest)
return
}
responseWriter.Header().Set("Content-Type", "application/json")
_ = json.NewEncoder(responseWriter).Encode(result)
}
func requestedLimit(value string) int {
limit, errorValue := strconv.Atoi(strings.TrimSpace(value))
if errorValue != nil {
return 0
}
return limit
}