diff --git a/api/characteristics.go b/api/characteristics.go index 0d284db..3926b86 100644 --- a/api/characteristics.go +++ b/api/characteristics.go @@ -194,3 +194,13 @@ func (c CharacteristicService) Create(e *types.Entity, genus string, claims *typ } return nil } + +// Delete deletes a single characteristic +func (c CharacteristicService) Delete(id int64, genus string, claims *types.Claims) *types.AppError { + q := `DELETE FROM characteristics WHERE id=$1;` + // TODO: fix this + if _, err := models.DBH.Exec(q, id); err != nil { + return newJSONError(err, http.StatusInternalServerError) + } + return nil +} diff --git a/handlers/handlers.go b/handlers/handlers.go index 6380c67..09a1ae6 100644 --- a/handlers/handlers.go +++ b/handlers/handlers.go @@ -82,6 +82,7 @@ func Handler() http.Handler { r{handleCreater(characteristicService), "POST", "/characteristics"}, r{handleGetter(characteristicService), "GET", "/characteristics/{ID:.+}"}, r{handleUpdater(characteristicService), "PUT", "/characteristics/{ID:.+}"}, + r{handleDeleter(characteristicService), "DELETE", "/characteristics/{ID:.+}"}, r{handleLister(measurementService), "GET", "/measurements"}, r{handleCreater(measurementService), "POST", "/measurements"}, r{handleGetter(measurementService), "GET", "/measurements/{ID:.+}"}, diff --git a/migrations/00010_AddMeasurements_up.sql b/migrations/00010_AddMeasurements_up.sql index 9d7e52b..ca3674c 100644 --- a/migrations/00010_AddMeasurements_up.sql +++ b/migrations/00010_AddMeasurements_up.sql @@ -21,7 +21,7 @@ CREATE TABLE measurements ( CONSTRAINT strainscharmeasurements_pkey PRIMARY KEY (id), FOREIGN KEY (strain_id) REFERENCES strains(id), - FOREIGN KEY (characteristic_id) REFERENCES characteristics(id), + FOREIGN KEY (characteristic_id) REFERENCES characteristics(id) ON DELETE CASCADE, FOREIGN KEY (text_measurement_type_id) REFERENCES text_measurement_types(id), FOREIGN KEY (unit_type_id) REFERENCES unit_types(id), FOREIGN KEY (test_method_id) REFERENCES test_methods(id),