Browse Source

More work on email and notification infra #1456

Torkel Ödegaard 10 years ago
parent
commit
c709a28f02

+ 1 - 1
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"

+ 6 - 6
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)
 }

+ 1 - 1
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"
 )

+ 1 - 1
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) {

+ 39 - 0
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",
+	}
+}

+ 4 - 4
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

+ 0 - 0
pkg/notifications/email.go → pkg/services/notifications/email.go


+ 1 - 1
pkg/notifications/notifications.go → pkg/services/notifications/notifications.go

@@ -7,5 +7,5 @@ func Init() {
 }
 
 func sendResetPasswordEmail(cmd *SendResetPasswordEmailCommand) error {
-	email := NewMailMessage("")
+	return nil
 }

+ 0 - 0
pkg/search/handlers.go → pkg/services/search/handlers.go


+ 0 - 0
pkg/search/handlers_test.go → pkg/services/search/handlers_test.go


+ 0 - 0
pkg/search/json_index.go → pkg/services/search/json_index.go


+ 0 - 0
pkg/search/json_index_test.go → pkg/services/search/json_index_test.go


+ 0 - 0
pkg/search/models.go → pkg/services/search/models.go


+ 1 - 1
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() {