From 4f0f2a6006c24f5877d787d1176f3c0c2895e016 Mon Sep 17 00:00:00 2001 From: Chteufleur Date: Tue, 13 Oct 2015 23:43:35 +0200 Subject: [PATCH] Add the possibilitie to delete a sensor and all its values. --- controllers/sensors.go | 13 ++++++++++++- models/sensor/sensor.go | 12 ++++++++++++ models/temperature/temperature.go | 10 ++++++++++ views/sensors.tpl | 4 ++-- 4 files changed, 36 insertions(+), 3 deletions(-) diff --git a/controllers/sensors.go b/controllers/sensors.go index 44851e8..89172de 100644 --- a/controllers/sensors.go +++ b/controllers/sensors.go @@ -4,9 +4,11 @@ import ( "github.com/astaxie/beego" "datahouse/models/sensor" + "datahouse/models/temperature" "datahouse/models/variables" "strconv" + "fmt" ) type SensorsController struct { @@ -38,9 +40,18 @@ func (c *SensorsController) Post() { intervalStr := c.Input().Get("interval") interval, err := strconv.ParseInt(intervalStr, 10, 0) - if err == nil { + isDelete := c.Input().Get("delete") + fmt.Println("Del: ", isDelete) + isSave := c.Input().Get("save") + fmt.Println("Save: ", isSave) + if isSave != "" && err == nil { sensor.UpdateSensor(mac, description, interval) c.Redirect("/sensors", 302) + } else if isDelete != "" { + s := sensor.GetSensorByMac(mac) + temperature.DeleteTemperatureBySenor(s.Id) + sensor.DeleteSensor(s.Id) + c.Redirect("/sensors", 302) } else { c.Redirect("/404", 404) } diff --git a/models/sensor/sensor.go b/models/sensor/sensor.go index c663022..6f57932 100644 --- a/models/sensor/sensor.go +++ b/models/sensor/sensor.go @@ -117,3 +117,15 @@ func AddSensor(sensorMac string) { o.Using(database.Alias) _, _ = o.Insert(&SensorTable{SensorMAC: sensorMac}) } + +func DeleteSensorByMac(sensorMac string) { + o := orm.NewOrm() + o.Using(database.Alias) + o.Delete(&SensorTable{SensorMAC: sensorMac}) +} + +func DeleteSensor(sensorId int64) { + o := orm.NewOrm() + o.Using(database.Alias) + o.Delete(&SensorTable{Id: sensorId}) +} diff --git a/models/temperature/temperature.go b/models/temperature/temperature.go index 99bce9d..d72cf31 100644 --- a/models/temperature/temperature.go +++ b/models/temperature/temperature.go @@ -72,3 +72,13 @@ func GetLastTempForSensor(sensorId int64) (*TempTable) { } return data } + +func DeleteTemperatureBySenor(sensorId int64) { + o := orm.NewOrm() + o.Using(database.Alias) + + temps := GetAllTempForSensor(sensorId) + for _, temp := range temps { + o.Delete(&TempTable{Id: temp.Id}) + } +} diff --git a/views/sensors.tpl b/views/sensors.tpl index e2ffe16..5680823 100644 --- a/views/sensors.tpl +++ b/views/sensors.tpl @@ -22,8 +22,8 @@

- - + +