Delete measurement

This commit is contained in:
Matthew Dillon 2015-09-25 15:37:40 -07:00
parent 82f5628266
commit f646437f73
3 changed files with 31 additions and 0 deletions

View file

@ -23,3 +23,6 @@ type creater interface {
create(*entity, string, *Claims) *appError
unmarshal([]byte) (entity, error)
}
type deleter interface {
delete(int64, string, *Claims) *appError
}

View file

@ -122,6 +122,7 @@ func Handler() http.Handler {
r{handleLister(measurementService), "GET", "/measurements"},
r{handleGetter(measurementService), "GET", "/measurements/{Id:.+}"},
r{handleUpdater(measurementService), "PUT", "/measurements/{Id:.+}"},
r{handleDeleter(measurementService), "DELETE", "/measurements/{Id:.+}"},
}
for _, route := range routes {
@ -235,6 +236,24 @@ func handleCreater(c creater) errorHandler {
}
}
func handleDeleter(d deleter) errorHandler {
return func(w http.ResponseWriter, r *http.Request) *appError {
id, err := strconv.ParseInt(mux.Vars(r)["Id"], 10, 0)
if err != nil {
return newJSONError(err, http.StatusInternalServerError)
}
claims := getClaims(r)
appErr := d.delete(id, mux.Vars(r)["genus"], &claims)
if appErr != nil {
return appErr
}
return nil
}
}
func tokenHandler(h http.Handler) http.Handler {
token := func(w http.ResponseWriter, r *http.Request) {
recorder := httptest.NewRecorder()

View file

@ -246,6 +246,15 @@ func (s MeasurementService) update(id int64, e *entity, genus string, claims *Cl
return nil
}
func (m MeasurementService) delete(id int64, genus string, claims *Claims) *appError {
q := `DELETE FROM measurements WHERE id=$1;`
_, err := DBH.Exec(q, id)
if err != nil {
return newJSONError(err, http.StatusInternalServerError)
}
return nil
}
func listMeasurements(opt MeasurementListOptions, claims *Claims) (*Measurements, error) {
var vals []interface{}