Mercurial > gemma
diff pkg/imports/queue.go @ 1657:c354631e0018
Import queue: Moved email notification stuff to separate file.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Fri, 21 Dec 2018 10:33:49 +0100 |
parents | 6dfad1ad59c8 |
children | 4a2fad8f57de |
line wrap: on
line diff
--- a/pkg/imports/queue.go Fri Dec 21 10:25:15 2018 +0100 +++ b/pkg/imports/queue.go Fri Dec 21 10:33:49 2018 +0100 @@ -18,7 +18,6 @@ "database/sql" "encoding/json" "fmt" - "html/template" "log" "runtime/debug" "strings" @@ -29,7 +28,6 @@ "gemma.intevation.de/gemma/pkg/auth" "gemma.intevation.de/gemma/pkg/config" - "gemma.intevation.de/gemma/pkg/misc" ) type ( @@ -529,68 +527,3 @@ }(jc, idj) } } - -const ( - selectEmailSQL = `SELECT email_address FROM users.list_users WHERE username = $1` - - importNotificationMailSubject = `import notification mail` -) - -var ( - importNotificationMailTmpl = template.Must( - template.New("notification").Parse(`Dear {{ .User }}, - -a {{ .Description }} import on server {{ .Server }} triggered -this email notification. - -{{ if eq .State "accepted" }}The imported data were successfully integrated into the database.{{ end -}} -{{ if eq .State "failed" }}The import failed for some reasons.{{ end -}} -{{ if eq .State "pending" }}The imported data could be integrated into the database -but your final decision is needed.{{ end }} - -Please follow this link to have a closer look at the details: - -{{ .Server }}/#/?{{ if eq .State "pending" }}review{{ else }}importlog{{ end }}={{ .ID }} - -Best regards - Your service team`)) -) - -func sendNotificationMail(user, description, state string, id int64) { - config.WaitReady() - - ctx := context.Background() - var email string - if err := auth.RunAs(ctx, user, - func(conn *sql.Conn) error { - return conn.QueryRowContext(ctx, selectEmailSQL, user).Scan(&email) - }, - ); err != nil { - log.Printf("error: %v\n", err) - return - } - - data := struct { - User string - Description string - Server string - State string - ID int64 - }{ - User: user, - Description: description, - Server: config.ExternalURL(), - State: state, - ID: id, - } - - var body strings.Builder - if err := importNotificationMailTmpl.Execute(&body, &data); err != nil { - log.Printf("error: %v\n", err) - return - } - - if err := misc.SendMail(email, importNotificationMailSubject, body.String()); err != nil { - log.Printf("error: %v\n", err) - } -}