Delete measurement
This commit is contained in:
parent
82f5628266
commit
f646437f73
3 changed files with 31 additions and 0 deletions
|
@ -23,3 +23,6 @@ type creater interface {
|
||||||
create(*entity, string, *Claims) *appError
|
create(*entity, string, *Claims) *appError
|
||||||
unmarshal([]byte) (entity, error)
|
unmarshal([]byte) (entity, error)
|
||||||
}
|
}
|
||||||
|
type deleter interface {
|
||||||
|
delete(int64, string, *Claims) *appError
|
||||||
|
}
|
||||||
|
|
19
handlers.go
19
handlers.go
|
@ -122,6 +122,7 @@ func Handler() http.Handler {
|
||||||
r{handleLister(measurementService), "GET", "/measurements"},
|
r{handleLister(measurementService), "GET", "/measurements"},
|
||||||
r{handleGetter(measurementService), "GET", "/measurements/{Id:.+}"},
|
r{handleGetter(measurementService), "GET", "/measurements/{Id:.+}"},
|
||||||
r{handleUpdater(measurementService), "PUT", "/measurements/{Id:.+}"},
|
r{handleUpdater(measurementService), "PUT", "/measurements/{Id:.+}"},
|
||||||
|
r{handleDeleter(measurementService), "DELETE", "/measurements/{Id:.+}"},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, route := range routes {
|
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 {
|
func tokenHandler(h http.Handler) http.Handler {
|
||||||
token := func(w http.ResponseWriter, r *http.Request) {
|
token := func(w http.ResponseWriter, r *http.Request) {
|
||||||
recorder := httptest.NewRecorder()
|
recorder := httptest.NewRecorder()
|
||||||
|
|
|
@ -246,6 +246,15 @@ func (s MeasurementService) update(id int64, e *entity, genus string, claims *Cl
|
||||||
return nil
|
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) {
|
func listMeasurements(opt MeasurementListOptions, claims *Claims) (*Measurements, error) {
|
||||||
var vals []interface{}
|
var vals []interface{}
|
||||||
|
|
||||||
|
|
Reference in a new issue