Advertisement
darkmist

EventBroker.go

Jul 20th, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.85 KB | None | 0 0
  1. // Broker provides the intelligence of how to mark and direct all events
  2. func (c *EventsController) Broker(w http.ResponseWriter, r *http.Request) error {
  3.     var err error
  4.     c.Accept = r.Header.Get("Accept")
  5.     c.ContentType = "application/json"
  6.     dbEvent, err := c.Env.Jack.ByExtKeyAndOpen(c.Event.ExtKey)
  7.     c.Event.ID = dbEvent.ID
  8.     if err != nil {
  9.         c.Event.ID = 0
  10.     }
  11.     switch {
  12.     case c.Event.ID == 0 && c.Event.Severity != models.NORMAL:
  13.         return c.create(w, r)
  14.     case c.Event.ID == 0 && c.Event.Severity == models.NORMAL:
  15.         return c.flapping(w, r)
  16.     case c.Event.ID > 0 && c.Event.Severity != models.NORMAL:
  17.         return c.update(w, r)
  18.     case c.Event.ID > 0 && c.Event.Severity == models.NORMAL:
  19.         return c.closeAction(w, r)
  20.     }
  21.     return handler.StatusError{
  22.         Code: http.StatusInternalServerError,
  23.         Err:  errors.New("unable to determine event status"),
  24.     }
  25. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement