From 1b9373012179759c5e58d0178bf2160745b290b7 Mon Sep 17 00:00:00 2001
From: Matej Kramny <matejkramny@gmail.com>
Date: Mon, 6 Feb 2017 21:56:08 -0800
Subject: [PATCH] compile template message

---
 config.go   |  1 +
 http.go     |  6 +++---
 monitor.go  |  5 ++++-
 template.go | 13 ++++++-------
 4 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/config.go b/config.go
index 5d0e27e..9849e69 100644
--- a/config.go
+++ b/config.go
@@ -84,5 +84,6 @@ func getTemplateData(monitor *AbstractMonitor) map[string]interface{} {
 		"SystemName": monitor.config.SystemName,
 		"API":        monitor.config.API,
 		"Monitor":    monitor,
+		"now":        time.Now().Format(monitor.config.DateFormat),
 	}
 }
diff --git a/http.go b/http.go
index eaa0ad3..53067d6 100644
--- a/http.go
+++ b/http.go
@@ -15,14 +15,14 @@ import (
 // Investigating template
 var defaultHTTPInvestigatingTpl = MessageTemplate{
 	Subject: `{{ .Monitor.Name }} - {{ .SystemName }}`,
-	Message: `{{ .Name }} check **failed** - {{ .now }}
+	Message: `{{ .Monitor.Name }} check **failed** - {{ .now }}
 
-{{ .lastFailReason }}`,
+{{ .FailReason }}`,
 }
 
 // Fixed template
 var defaultHTTPFixedTpl = MessageTemplate{
-	Subject: `{{ .Name }} - {{ .config.SystemName }}`,
+	Subject: `{{ .Monitor.Name }} - {{ .SystemName }}`,
 	Message: `**Resolved** - {{ .now }}
 
 - - -
diff --git a/monitor.go b/monitor.go
index 41d3352..93493de 100644
--- a/monitor.go
+++ b/monitor.go
@@ -192,7 +192,10 @@ func (mon *AbstractMonitor) AnalyseData() {
 
 	if triggered && mon.incident == nil {
 		// create incident
-		subject, message := mon.Template.Investigating.Exec(getTemplateData(mon))
+		tplData := getTemplateData(mon)
+		tplData["FailReason"] = mon.lastFailReason
+
+		subject, message := mon.Template.Investigating.Exec(tplData)
 		mon.incident = &Incident{
 			Name:        subject,
 			ComponentID: mon.ComponentID,
diff --git a/template.go b/template.go
index 48f7666..31a09b0 100644
--- a/template.go
+++ b/template.go
@@ -3,8 +3,6 @@ package cachet
 import (
 	"bytes"
 	"text/template"
-
-	"github.com/Sirupsen/logrus"
 )
 
 type MessageTemplate struct {
@@ -39,13 +37,14 @@ func (t *MessageTemplate) Compile() error {
 }
 
 func (t *MessageTemplate) Exec(data interface{}) (string, string) {
-	buf := new(bytes.Buffer)
+	return t.exec(t.subjectTpl, data), t.exec(t.messageTpl, data)
+}
 
-	logrus.Warnf("%#v", t.subjectTpl)
-	t.subjectTpl.Execute(buf, data)
-	subject := buf.String()
+func (t *MessageTemplate) exec(tpl *template.Template, data interface{}) string {
+	buf := new(bytes.Buffer)
 
-	return subject, ""
+	tpl.Execute(buf, data)
+	return buf.String()
 }
 
 func compileTemplate(text string) (*template.Template, error) {
-- 
GitLab