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 @@

- - + +