influxdb/server/queries.go

31 lines
623 B
Go

package server
import (
"encoding/json"
"fmt"
"net/http"
"github.com/influxdata/chronograf/influx/queries"
)
type QueryRequest struct {
Query string `json:"query"`
}
// Query parses InfluxQL and returns the JSON
func (s *Service) Query(w http.ResponseWriter, r *http.Request) {
var req QueryRequest
if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
invalidJSON(w, s.Logger)
return
}
stmt, err := queries.ParseSelect(req.Query)
if err != nil {
Error(w, http.StatusBadRequest, fmt.Sprintf("Error parsing query: %v", err), s.Logger)
return
}
encodeJSON(w, http.StatusOK, stmt, s.Logger)
}