darkmist icon

EventBroker.go

darkmist | PRO | 07/20/17 06:50:42 PM UTC | 0 ⭐ | 196 👁️ | Never ⏰ | []
Go |

850 B

|

None

|

0 👍

/

0 👎

// Broker provides the intelligence of how to mark and direct all events
func (c *EventsController) Broker(w http.ResponseWriter, r *http.Request) error {
    var err error
    c.Accept = r.Header.Get("Accept")
    c.ContentType = "application/json"
    dbEvent, err := c.Env.Jack.ByExtKeyAndOpen(c.Event.ExtKey)
    c.Event.ID = dbEvent.ID
    if err != nil {
        c.Event.ID = 0
    }
    switch {
    case c.Event.ID == 0 && c.Event.Severity != models.NORMAL:
        return c.create(w, r)
    case c.Event.ID == 0 && c.Event.Severity == models.NORMAL:
        return c.flapping(w, r)
    case c.Event.ID > 0 && c.Event.Severity != models.NORMAL:
        return c.update(w, r)
    case c.Event.ID > 0 && c.Event.Severity == models.NORMAL:
        return c.closeAction(w, r)
    }
    return handler.StatusError{
        Code: http.StatusInternalServerError,
        Err:  errors.New("unable to determine event status"),
    }
}

Comments