forked from fwtpe/owl-backend
/
dashboard_graph_tmp_controller.go
70 lines (56 loc) · 1.79 KB
/
dashboard_graph_tmp_controller.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package dashboard_graph
import (
"sort"
"strings"
"time"
cutils "github.com/fwtpe/owl-backend/common/utils"
h "github.com/fwtpe/owl-backend/modules/f2e-api/app/helper"
m "github.com/fwtpe/owl-backend/modules/f2e-api/app/model/dashboard"
"github.com/gin-gonic/gin"
)
type APITmpGraphCreateReqData struct {
Endpoints []string `json:"endpoints" form:"endpoints" binding:"reqenvuired"`
Counters []string `json:"counters" form:"counters" binding:"required"`
}
func DashboardTmpGraphCreate(c *gin.Context) {
var inputs APITmpGraphCreateReqData
if err := c.Bind(&inputs); err != nil {
h.JSONR(c, badstatus, err)
return
}
es := inputs.Endpoints
cs := inputs.Counters
sort.Strings(es)
sort.Strings(cs)
es_string := strings.Join(es, TMP_GRAPH_FILED_DELIMITER)
cs_string := strings.Join(cs, TMP_GRAPH_FILED_DELIMITER)
ck := cutils.Md5(es_string + ":" + cs_string)
dt := db.Dashboard.Exec("insert ignore into `tmp_graph` (endpoints, counters, ck) values(?, ?, ?) on duplicate key update time_=?", es_string, cs_string, ck, time.Now())
if dt.Error != nil {
h.JSONR(c, badstatus, dt.Error)
return
}
tmp_graph := m.DashboardTmpGraph{}
dt = db.Dashboard.Table("tmp_graph").Where("ck=?", ck).First(&tmp_graph)
if dt.Error != nil {
h.JSONR(c, badstatus, dt.Error)
return
}
h.JSONR(c, map[string]int{"id": int(tmp_graph.ID)})
}
func DashboardTmpGraphQuery(c *gin.Context) {
id := c.Param("id")
tmp_graph := m.DashboardTmpGraph{}
dt := db.Dashboard.Table("tmp_graph").Where("id = ?", id).First(&tmp_graph)
if dt.Error != nil {
h.JSONR(c, badstatus, dt.Error)
return
}
es := strings.Split(tmp_graph.Endpoints, TMP_GRAPH_FILED_DELIMITER)
cs := strings.Split(tmp_graph.Counters, TMP_GRAPH_FILED_DELIMITER)
ret := map[string][]string{
"endpoints": es,
"counters": cs,
}
h.JSONR(c, ret)
}