-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsend.go
76 lines (65 loc) · 1.68 KB
/
send.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package main
import (
"bytes"
html "html/template"
"log"
gomail "gopkg.in/gomail.v2"
)
type varsTemp struct {
selector string
valor string
}
type callBody struct {
Direccion []string `binding:"required" json:"direccion"`
IDUsuario []int `json:"id_usuario"`
Subject string `binding:"required" json:"subject"`
VariablesTemplate []varsTemp `json:"variables_template"`
}
func parseTemplate(templateBody string, templateData interface{}) (string, error) {
parseo, err := html.New("temp").Parse(templateBody)
if err != nil {
return "", err
}
buf := new(bytes.Buffer)
if err = parseo.Execute(buf, templateData); err != nil {
return "", err
}
result := buf.String()
return result, nil
}
func (b callBody) sendSpecific(tempname string) error {
_, temp, err := getTemplateFirebase(tempname)
// pasar var temps a una struct personalizada
m := gomail.NewMessage()
m.SetHeader("To", b.Direccion...)
// m.SetAddressHeader("Cc", "[email protected]", "Dan")
m.SetHeader("Subject", b.Subject)
templateData := struct {
Name string
URL string
}{
Name: "Pablo",
URL: "http://facebook.com",
}
res, err := parseTemplate(temp.TemplateBody, templateData)
if err != nil {
log.Print(err)
return err
}
log.Print(res)
m.SetBody("text/html", res)
if err := d.DialAndSend(m); err != nil {
panic(err)
}
return nil
}
// func getListaBroadcast() []string {
// client, ctx, err := getFireStore()
// if err != nil {
// panic(err)
// }
// var direcciones []string
// return direcciones
// }