func GetGetTemplateFileHandler()

in alertmanager/handlers/template_handlers.go [19:36]


func GetGetTemplateFileHandler(amClient client.AlertmanagerClient, tmplClient client.TemplateClient) func(c echo.Context) error {
	return func(c echo.Context) error {
		filename := c.Get(templateFilenameParam).(string)
		exists, err := fileExists(amClient, tmplClient, filename)
		if err != nil {
			return echo.NewHTTPError(http.StatusInternalServerError, err.Error())
		}
		if !exists {
			return echo.NewHTTPError(http.StatusBadRequest, fmt.Errorf("error getting file %s: file does not exist", filename).Error())
		}

		file, err := tmplClient.GetTemplateFile(filename)
		if err != nil {
			return echo.NewHTTPError(http.StatusInternalServerError, fmt.Sprintf("error getting template file: %v", err))
		}
		return c.JSON(http.StatusOK, file)
	}
}