in alertmanager/handlers/handlers.go [341:362]
func decodeReceiverPostRequest(c echo.Context) (config.Receiver, error) {
body, err := ioutil.ReadAll(c.Request().Body)
if err != nil {
glog.Errorf("error decoding receiver config: %v", err)
return config.Receiver{}, fmt.Errorf("error reading request body: %v", err)
}
receiver := config.Receiver{}
err = json.Unmarshal(body, &receiver)
if err == nil {
return receiver, nil
}
// Try to unmarshal into the ReceiverJSONWrapper struct if prometheus struct doesn't work
jsonPayload := config.ReceiverJSONWrapper{}
err = json.Unmarshal(body, &jsonPayload)
if err != nil {
glog.Errorf("error decoding receiver config: %v", err)
return receiver, fmt.Errorf("error unmarshalling payload: %v", err)
}
return jsonPayload.ToReceiverFmt()
}