in alertmanager/handlers/handlers.go [212:235]
func GetUpdateReceiverHandler(client client.AlertmanagerClient, getReceiverName paramProvider) func(c echo.Context) error {
return func(c echo.Context) error {
defer glog.Flush()
tenantID := c.Get(tenantIDParam).(string)
receiverName := getReceiverName(c)
glog.Infof("Get Receiver: Tenant: %s, receiver: %s", tenantID, receiverName)
newReceiver, err := decodeReceiverPostRequest(c)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, err.Error())
}
err = client.UpdateReceiver(tenantID, receiverName, &newReceiver)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, err.Error())
}
err = client.ReloadAlertmanager()
if err != nil {
return echo.NewHTTPError(http.StatusInternalServerError, err.Error())
}
return c.NoContent(http.StatusOK)
}
}