64 lines
1.2 KiB
Go
64 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"net/http"
|
|
"strconv"
|
|
|
|
"gopkg.in/macaron.v1"
|
|
)
|
|
|
|
func statusPage(ctx *macaron.Context) {
|
|
ctx.HTML(200, "status") // 200 is the response code.
|
|
}
|
|
|
|
func jsonStatus(ctx *macaron.Context) {
|
|
// MQTTpublish("openpdu/status", "asdss")
|
|
|
|
var data = make([]Dictionary, 0)
|
|
var o *Outlet
|
|
for i := range outlets {
|
|
o = outlets[i]
|
|
// d := []string{fmt.Sprintf("%d", o.Num), o.Channel.Name, fmt.Sprintf("%v", o.Channel.Value)}
|
|
data = append(data, Dictionary{
|
|
"Num": o.Num,
|
|
"Description": o.Description,
|
|
"Status": o.Channel.Status(),
|
|
})
|
|
}
|
|
|
|
ctx.JSON(http.StatusOK, Dictionary{
|
|
"data": data,
|
|
})
|
|
}
|
|
|
|
func jsonOutletToggle(ctx *macaron.Context) {
|
|
var err error
|
|
var num uint64
|
|
var outlet *Outlet
|
|
|
|
num, err = strconv.ParseUint(ctx.Params(":id"), 10, 64)
|
|
if err != nil {
|
|
ctx.JSON(http.StatusOK, Dictionary{
|
|
"data": "error1",
|
|
})
|
|
}
|
|
|
|
if num >= uint64(len(outlets)) || num < 0 {
|
|
ctx.JSON(http.StatusOK, Dictionary{
|
|
"data": "error2",
|
|
})
|
|
}
|
|
|
|
outlet = outlets[num]
|
|
_, err = outlet.Channel.Toggle()
|
|
if err != nil {
|
|
ctx.JSON(http.StatusOK, Dictionary{
|
|
"data": "error3",
|
|
})
|
|
}
|
|
|
|
ctx.JSON(http.StatusOK, Dictionary{
|
|
"data": "ok",
|
|
})
|
|
}
|