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
|
||||
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{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()
|
||||
|
|
|
@ -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{}
|
||||
|
||||
|
|
Reference in a new issue