/
receiver.go
78 lines (71 loc) · 2.03 KB
/
receiver.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
71
72
73
74
75
76
77
78
package controllers
import (
"encoding/json"
"strconv"
"github.com/astaxie/beego"
"github.com/Qihoo360/doraemon/cmd/alert-gateway/common"
"github.com/Qihoo360/doraemon/cmd/alert-gateway/logs"
"github.com/Qihoo360/doraemon/cmd/alert-gateway/models"
)
type ReceiverController struct {
beego.Controller
}
func (c *ReceiverController) URLMapping() {
c.Mapping("UpdateReceiver", c.UpdateReceiver)
c.Mapping("DeleteReceiver", c.DeleteReceiver)
}
// @router /:receiverid [put]
func (c *ReceiverController) UpdateReceiver() {
var receiver models.Receivers
var ans common.Res
receiverId := c.Ctx.Input.Param(":receiverid")
err := json.Unmarshal(c.Ctx.Input.RequestBody, &receiver)
if err != nil {
logs.Error("Unmarshal rule error:%v", err)
ans.Code = 1
ans.Msg = "Unmarshal error"
} else {
if receiver.Expression != "" {
root, err := common.BuildTree(receiver.Expression)
if err != nil {
ans.Code = 1
ans.Msg = err.Error()
} else {
ReversePolishNotation := common.Converse2ReversePolishNotation(root)
receiver.ReversePolishNotation = ReversePolishNotation
id, _ := strconv.ParseInt(receiverId, 10, 64)
receiver.Id = id
err = receiver.UpdateReceiver()
if err != nil {
ans.Code = 1
ans.Msg = err.Error()
}
}
} else {
id, _ := strconv.ParseInt(receiverId, 10, 64)
receiver.Id = id
err = receiver.UpdateReceiver()
if err != nil {
ans.Code = 1
ans.Msg = err.Error()
}
}
logs.Logger.Info("%s %s %s %v", c.GetSession("username"), c.Ctx.Request.RequestURI, c.Ctx.Request.Method, receiver)
}
c.Data["json"] = &ans
c.ServeJSON()
}
// @router /:receiverid [delete]
func (c *ReceiverController) DeleteReceiver() {
receiverId := c.Ctx.Input.Param(":receiverid")
var Receiver *models.Receivers
var ans common.Res
err := Receiver.DeleteReceiver(receiverId)
if err != nil {
ans.Code = 1
ans.Msg = err.Error()
}
logs.Logger.Info("%s %s %s %s", c.GetSession("username"), c.Ctx.Request.RequestURI, c.Ctx.Request.Method, receiverId)
c.Data["json"] = &ans
c.ServeJSON()
}