func GetGetReceiversHandler()

in alertmanager/handlers/handlers.go [171:193]


func GetGetReceiversHandler(client client.AlertmanagerClient) func(c echo.Context) error {
	return func(c echo.Context) error {
		defer glog.Flush()
		tenantID := c.Get(tenantIDParam).(string)
		receiverName := c.Param(receiverNameParam)
		glog.Infof("Get Receiver: Tenant: %s, receiver: %s", tenantID, receiverName)

		recs, err := client.GetReceivers(tenantID)
		if err != nil {
			return echo.NewHTTPError(http.StatusInternalServerError, err.Error())
		}

		if receiverName != "" {
			for _, rec := range recs {
				if rec.Name == receiverName {
					return c.JSON(http.StatusOK, rec)
				}
			}
			return echo.NewHTTPError(http.StatusBadRequest, fmt.Errorf("Receiver %s not found", receiverName))
		}
		return c.JSON(http.StatusOK, recs)
	}
}