add support for CreateDB and CreateFrame without POST data (i.e. use defaults)

This commit is contained in:
Travis 2017-04-19 16:59:56 -05:00
parent caf35bb4d9
commit 5a80685052
No known key found for this signature in database
GPG key ID: 7F08008DFD9314C9

View file

@ -309,6 +309,15 @@ func (h *Handler) handleDeleteDB(w http.ResponseWriter, r *http.Request) {
return
}
// Send the delete message to all nodes.
err := h.Broadcaster.SendSync(
&internal.DeleteDBMessage{
DB: dbName,
})
if err != nil {
h.logger().Printf("problem sending DeleteDB message: %s", err)
}
// Encode response.
if err := json.NewEncoder(w).Encode(deleteDBResponse{}); err != nil {
h.logger().Printf("response encoding error: %s", err)
@ -323,13 +332,17 @@ func (h *Handler) handlePostDB(w http.ResponseWriter, r *http.Request) {
// Decode request.
var req postDBRequest
if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
err := json.NewDecoder(r.Body).Decode(&req)
if err == io.EOF {
// If no data was provided (EOF), we still create the database
// with default values.
} else if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
// Create database.
_, err := h.Index.CreateDB(dbName, req.Options)
_, err = h.Index.CreateDB(dbName, req.Options)
if err == ErrDatabaseExists {
http.Error(w, err.Error(), http.StatusConflict)
return
@ -340,11 +353,15 @@ func (h *Handler) handlePostDB(w http.ResponseWriter, r *http.Request) {
// Send the delete message to all nodes.
err = h.Broadcaster.SendSync(
&internal.DeleteDBMessage{
&internal.CreateDBMessage{
DB: dbName,
Meta: &internal.DBMeta{
ColumnLabel: req.Options.ColumnLabel,
TimeQuantum: string(req.Options.TimeQuantum),
},
})
if err != nil {
h.logger().Printf("problem sending DeleteDB message: %s", err)
h.logger().Printf("problem sending CreateDB message: %s", err)
}
// Encode response.
@ -460,7 +477,11 @@ func (h *Handler) handlePostFrame(w http.ResponseWriter, r *http.Request) {
// Decode request.
var req postFrameRequest
if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
err := json.NewDecoder(r.Body).Decode(&req)
if err == io.EOF {
// If no data was provided (EOF), we still create the frame
// with default values.
} else if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
@ -473,7 +494,7 @@ func (h *Handler) handlePostFrame(w http.ResponseWriter, r *http.Request) {
}
// Create frame.
_, err := db.CreateFrame(frameName, req.Options)
_, err = db.CreateFrame(frameName, req.Options)
if err == ErrFrameExists {
http.Error(w, err.Error(), http.StatusConflict)
return