in alertmanager/handlers/template_handlers.go [161:185]
func GetPostTemplateHandler(amClient client.AlertmanagerClient, tmplClient client.TemplateClient) func(c echo.Context) error {
return func(c echo.Context) error {
filename := c.Get(templateFilenameParam).(string)
tmplName := c.Get(templateNameParam).(string)
tmplText, err := readStringBody(c)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, err.Error())
}
exists, err := fileExists(amClient, tmplClient, filename)
if err != nil {
return echo.NewHTTPError(http.StatusInternalServerError, err)
}
if !exists {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("error getting file: file %s does not exist", filename))
}
err = tmplClient.AddTemplate(filename, tmplName, tmplText)
if err != nil {
return echo.NewHTTPError(http.StatusInternalServerError, fmt.Sprintf("error adding template: %s", err.Error()))
}
return c.NoContent(http.StatusOK)
}
}