From c709a28f029cec5e1bfb1721f4ce97f80aa89d22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Fri, 5 Jun 2015 08:15:38 +0200 Subject: [PATCH] More work on email and notification infra #1456 --- main.go | 2 +- pkg/api/apikey.go | 12 +++--- pkg/api/dashboard.go | 2 +- pkg/api/search.go | 2 +- pkg/models/emails.go | 39 +++++++++++++++++++ pkg/services/mailer/mailer.go | 8 ++-- pkg/{ => services}/notifications/email.go | 0 .../notifications/notifications.go | 2 +- pkg/{ => services}/search/handlers.go | 0 pkg/{ => services}/search/handlers_test.go | 0 pkg/{ => services}/search/json_index.go | 0 pkg/{ => services}/search/json_index_test.go | 0 pkg/{ => services}/search/models.go | 0 pkg/services/sqlstore/dashboard.go | 2 +- 14 files changed, 54 insertions(+), 15 deletions(-) create mode 100644 pkg/models/emails.go rename pkg/{ => services}/notifications/email.go (100%) rename pkg/{ => services}/notifications/notifications.go (87%) rename pkg/{ => services}/search/handlers.go (100%) rename pkg/{ => services}/search/handlers_test.go (100%) rename pkg/{ => services}/search/json_index.go (100%) rename pkg/{ => services}/search/json_index_test.go (100%) rename pkg/{ => services}/search/models.go (100%) diff --git a/main.go b/main.go index 97f9262eb52..4573d3f9566 100644 --- a/main.go +++ b/main.go @@ -14,9 +14,9 @@ import ( "github.com/grafana/grafana/pkg/log" "github.com/grafana/grafana/pkg/metrics" "github.com/grafana/grafana/pkg/plugins" - "github.com/grafana/grafana/pkg/search" "github.com/grafana/grafana/pkg/services/eventpublisher" "github.com/grafana/grafana/pkg/services/mailer" + "github.com/grafana/grafana/pkg/services/search" "github.com/grafana/grafana/pkg/services/sqlstore" "github.com/grafana/grafana/pkg/setting" "github.com/grafana/grafana/pkg/social" diff --git a/pkg/api/apikey.go b/pkg/api/apikey.go index 9c2210f11d2..cedc2529f79 100644 --- a/pkg/api/apikey.go +++ b/pkg/api/apikey.go @@ -24,12 +24,12 @@ func GetApiKeys(c *middleware.Context) Response { } } - bus.Dispatch(&m.SendEmailCommand{ - To: []string{"torkel@raintank.io"}, - From: "grafana@test.com", - Subject: "Test from Grafana2", - Body: "Body! hej hoppas allt är bra", - }) + // bus.Dispatch(&m.SendEmailCommand{ + // To: []string{"torkel@raintank.io"}, + // From: "grafana@test.com", + // Subject: "Test from Grafana2", + // Body: "Body! hej hoppas allt är bra", + // }) return Json(200, result) } diff --git a/pkg/api/dashboard.go b/pkg/api/dashboard.go index b010f32cdcb..60139fd3b84 100644 --- a/pkg/api/dashboard.go +++ b/pkg/api/dashboard.go @@ -10,7 +10,7 @@ import ( "github.com/grafana/grafana/pkg/metrics" "github.com/grafana/grafana/pkg/middleware" m "github.com/grafana/grafana/pkg/models" - "github.com/grafana/grafana/pkg/search" + "github.com/grafana/grafana/pkg/services/search" "github.com/grafana/grafana/pkg/setting" "github.com/grafana/grafana/pkg/util" ) diff --git a/pkg/api/search.go b/pkg/api/search.go index e451ac398d6..035e59fa3f4 100644 --- a/pkg/api/search.go +++ b/pkg/api/search.go @@ -3,7 +3,7 @@ package api import ( "github.com/grafana/grafana/pkg/bus" "github.com/grafana/grafana/pkg/middleware" - "github.com/grafana/grafana/pkg/search" + "github.com/grafana/grafana/pkg/services/search" ) func Search(c *middleware.Context) { diff --git a/pkg/models/emails.go b/pkg/models/emails.go new file mode 100644 index 00000000000..321219598ee --- /dev/null +++ b/pkg/models/emails.go @@ -0,0 +1,39 @@ +package models + +type SendEmailCommand struct { + To []string + From string + Subject string + Body string + Type string + Massive bool + Info string +} + +type SendResetPasswordEmailCommand struct { + Email string +} + +// create mail content +func (m *SendEmailCommand) Content() string { + // set mail type + contentType := "text/plain; charset=UTF-8" + if m.Type == "html" { + contentType = "text/html; charset=UTF-8" + } + + // create mail content + content := "From: " + m.From + "\r\nSubject: " + m.Subject + "\r\nContent-Type: " + contentType + "\r\n\r\n" + m.Body + return content +} + +// Create html mail command +func NewSendEmailCommand(To []string, From, Subject, Body string) SendEmailCommand { + return SendEmailCommand{ + To: To, + From: From, + Subject: Subject, + Body: Body, + Type: "html", + } +} diff --git a/pkg/services/mailer/mailer.go b/pkg/services/mailer/mailer.go index ffd60698e7f..91e57fe9505 100644 --- a/pkg/services/mailer/mailer.go +++ b/pkg/services/mailer/mailer.go @@ -15,16 +15,16 @@ import ( "github.com/grafana/grafana/pkg/bus" "github.com/grafana/grafana/pkg/log" - "github.com/grafana/grafana/pkg/notifications" + m "github.com/grafana/grafana/pkg/models" "github.com/grafana/grafana/pkg/setting" ) -var mailQueue chan *notifications.SendEmailCommand +var mailQueue chan *m.SendEmailCommand func Init() { bus.AddHandler("email", handleEmailCommand) - mailQueue = make(chan *notifications.SendEmailCommand, 10) + mailQueue = make(chan *m.SendEmailCommand, 10) setting.Smtp = setting.SmtpSettings{ Host: "smtp.gmail.com:587", @@ -61,7 +61,7 @@ func encodeRFC2047(text string) string { return strings.Trim(addr.String(), " <>") } -func handleEmailCommand(cmd *notifications.SendEmailCommand) error { +func handleEmailCommand(cmd *m.SendEmailCommand) error { log.Info("Sending on queue") mailQueue <- cmd return nil diff --git a/pkg/notifications/email.go b/pkg/services/notifications/email.go similarity index 100% rename from pkg/notifications/email.go rename to pkg/services/notifications/email.go diff --git a/pkg/notifications/notifications.go b/pkg/services/notifications/notifications.go similarity index 87% rename from pkg/notifications/notifications.go rename to pkg/services/notifications/notifications.go index 5850277731d..ccc0495ff41 100644 --- a/pkg/notifications/notifications.go +++ b/pkg/services/notifications/notifications.go @@ -7,5 +7,5 @@ func Init() { } func sendResetPasswordEmail(cmd *SendResetPasswordEmailCommand) error { - email := NewMailMessage("") + return nil } diff --git a/pkg/search/handlers.go b/pkg/services/search/handlers.go similarity index 100% rename from pkg/search/handlers.go rename to pkg/services/search/handlers.go diff --git a/pkg/search/handlers_test.go b/pkg/services/search/handlers_test.go similarity index 100% rename from pkg/search/handlers_test.go rename to pkg/services/search/handlers_test.go diff --git a/pkg/search/json_index.go b/pkg/services/search/json_index.go similarity index 100% rename from pkg/search/json_index.go rename to pkg/services/search/json_index.go diff --git a/pkg/search/json_index_test.go b/pkg/services/search/json_index_test.go similarity index 100% rename from pkg/search/json_index_test.go rename to pkg/services/search/json_index_test.go diff --git a/pkg/search/models.go b/pkg/services/search/models.go similarity index 100% rename from pkg/search/models.go rename to pkg/services/search/models.go diff --git a/pkg/services/sqlstore/dashboard.go b/pkg/services/sqlstore/dashboard.go index 01eacb8436a..7fdaace316e 100644 --- a/pkg/services/sqlstore/dashboard.go +++ b/pkg/services/sqlstore/dashboard.go @@ -8,7 +8,7 @@ import ( "github.com/grafana/grafana/pkg/bus" "github.com/grafana/grafana/pkg/metrics" m "github.com/grafana/grafana/pkg/models" - "github.com/grafana/grafana/pkg/search" + "github.com/grafana/grafana/pkg/services/search" ) func init() {