Passed
Push — master ( 9acbae...dd6fe7 )
by eval
04:36 queued 02:53
created

ses/client_xapi_send_templated_email.go   A

Size/Duplication

Total Lines 61
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
cc 8
eloc 38
dl 0
loc 61
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
B ses.XSendTemplatedEmailRequest.ToRequest 0 28 5
A ses.*SES.XSendTemplatedEmail 0 10 3
1
package ses
2
3
import (
4
	"context"
5
	"encoding/json"
6
)
7
8
// XSendTemplatedEmail sends a template emails.
9
func (svc *SES) XSendTemplatedEmail(ctx context.Context, r XSendTemplatedEmailRequest) (*SendTemplatedEmailResult, error) {
10
	req, err := r.ToRequest()
11
	if err != nil {
12
		return nil, err
13
	}
14
	if req.ConfigurationSetName != "" {
15
		req.ConfigurationSetName = svc.defaultConfigurationSet
16
	}
17
18
	return svc.SendTemplatedEmail(ctx, req)
19
}
20
21
// XSendTemplatedEmailRequest has parameters for `XSendTemplatedEmail` function.
22
type XSendTemplatedEmailRequest struct {
23
	Destination          Destination
24
	From                 string
25
	Template             string
26
	ConfigurationSetName string
27
28
	// optional
29
	TemplateData map[string]interface{}
30
	Tags         map[string]string
31
}
32
33
// ToRequest converts to SendTemplatedEmailRequest.
34
func (r XSendTemplatedEmailRequest) ToRequest() (SendTemplatedEmailRequest, error) {
35
	req := SendTemplatedEmailRequest{
36
		Destination:          r.Destination,
37
		Template:             r.Template,
38
		Source:               r.From,
39
		ConfigurationSetName: r.ConfigurationSetName,
40
	}
41
42
	req.TemplateData = "{}"
43
	if len(r.TemplateData) != 0 {
44
		b, err := json.Marshal(r.TemplateData)
45
		if err != nil {
46
			return req, err
47
		}
48
		req.TemplateData = string(b)
49
	}
50
51
	if len(r.Tags) != 0 {
52
		tags := make([]MessageTag, 0, len(r.Tags))
53
		for k, v := range r.Tags {
54
			tags = append(tags, MessageTag{
55
				Name:  k,
56
				Value: v,
57
			})
58
		}
59
		req.Tags = tags
60
	}
61
	return req, nil
62
}
63