123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- package controllers
- import (
- "sparrow/pkg/models"
- "sparrow/services/knowoapi/services"
- "github.com/kataras/iris"
- "github.com/kataras/iris/mvc"
- )
- //AlertController api
- type AlertController struct {
- Ctx iris.Context
- Service services.AlertService
- Token Token
- }
- // Post 添加告警规则
- // POST /alert
- func (a *AlertController) Post() {
- alert := new(models.AlarmRule)
- if err := parseBody(a.Ctx, alert); err != nil {
- badRequest(a.Ctx, err)
- return
- }
- alert.VendorID = a.Token.getVendorID(a.Ctx)
- err := a.Service.Create(alert)
- if err != nil {
- responseError(a.Ctx, ErrDatabase, err.Error())
- return
- }
- done(a.Ctx, alert)
- }
- //Delete 删除
- // DELETE /alert
- func (a *AlertController) Delete() {
- alert := new(models.AlarmRule)
- if err := parseBody(a.Ctx, alert); err != nil {
- badRequest(a.Ctx, err)
- return
- }
- if alert.VendorID != a.Token.getVendorID(a.Ctx) {
- responseError(a.Ctx, ErrNormal, "没有权限")
- return
- }
- err := a.Service.Delete(alert)
- if err != nil {
- responseError(a.Ctx, ErrDatabase, "删除失败"+err.Error())
- return
- }
- done(a.Ctx, "删除成功")
- }
- // Put 删除
- // PUT /alert
- func (a *AlertController) Put() {
- alert := new(models.AlarmRule)
- if err := parseBody(a.Ctx, alert); err != nil {
- badRequest(a.Ctx, err)
- return
- }
- if alert.VendorID != a.Token.getVendorID(a.Ctx) {
- responseError(a.Ctx, ErrNormal, "没有权限")
- return
- }
- _alert, err := a.Service.Update(a.Token.getVendorID(a.Ctx), alert)
- if err != nil {
- responseError(a.Ctx, ErrDatabase, err.Error())
- return
- }
- done(a.Ctx, _alert)
- }
- // GetBy 根据ID查询
- // GET /alert/{id}
- func (a *AlertController) GetBy(id string) {
- alert, err := a.Service.GetRule(a.Token.getVendorID(a.Ctx), id)
- if err != nil {
- responseError(a.Ctx, ErrDatabase, err.Error())
- return
- }
- done(a.Ctx, alert)
- }
- // Get 获取告警列表
- // GET /alert
- func (a *AlertController) Get() {
- pi, err := a.Ctx.URLParamInt("pi")
- if err != nil {
- badRequest(a.Ctx, err)
- return
- }
- ps, err := a.Ctx.URLParamInt("ps")
- if err != nil {
- badRequest(a.Ctx, err)
- return
- }
- proid, err := a.Ctx.URLParamInt("proid")
- if err != nil {
- proid = 0
- }
- ptlid, err := a.Ctx.URLParamInt("ptlid")
- if err != nil {
- ptlid = 0
- }
- name := a.Ctx.URLParam("name")
- ds, total, err := a.Service.GetAlarmRules(a.Token.getVendorID(a.Ctx), pi, ps, proid, ptlid, name)
- if err != nil {
- responseError(a.Ctx, ErrDatabase, err.Error())
- return
- }
- done(a.Ctx, map[string]interface{}{
- "list": ds,
- "total": total,
- })
- }
- // BeforeActivation inside router
- func (a *AlertController) BeforeActivation(b mvc.BeforeActivation) {
- b.Handle("GET", "/status/{alertid:int}/{status:int}", "SetStatus") //设置启用、禁用状态
- }
- // SetStatus set rule status
- func (a *AlertController) SetStatus() {
- id := a.Ctx.Params().Get("alertid")
- status, _ := a.Ctx.Params().GetInt("status")
- alert, err := a.Service.SetRuleStatus(a.Token.getVendorID(a.Ctx), id, status)
- if err != nil {
- responseError(a.Ctx, ErrDatabase, err.Error())
- return
- }
- done(a.Ctx, alert.Status)
- }
|