-
Notifications
You must be signed in to change notification settings - Fork 147
Expand file tree
/
Copy pathdomains_tracking.go
More file actions
58 lines (49 loc) · 2.46 KB
/
Copy pathdomains_tracking.go
File metadata and controls
58 lines (49 loc) · 2.46 KB
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
package mailgun
import (
"context"
"github.com/mailgun/mailgun-go/v5/mtypes"
)
// GetDomainTracking returns tracking settings for a domain
func (mg *Client) GetDomainTracking(ctx context.Context, domain string) (mtypes.DomainTracking, error) {
r := newHTTPRequest(generateApiUrl(mg, 3, domainsEndpoint) + "/" + domain + "/tracking")
r.setClient(mg.HTTPClient())
r.setBasicAuth(basicAuthUser, mg.APIKey())
var resp mtypes.DomainTrackingResponse
err := getResponseFromJSON(ctx, r, &resp)
return resp.Tracking, err
}
func (mg *Client) UpdateClickTracking(ctx context.Context, domain, active string) error {
r := newHTTPRequest(generateApiUrl(mg, 3, domainsEndpoint) + "/" + domain + "/tracking/click")
r.setClient(mg.HTTPClient())
r.setBasicAuth(basicAuthUser, mg.APIKey())
// TODO(vtopc): should be "multipart/form-data" (NewFormDataPayload) according to the docs:
// https://documentation.mailgun.com/docs/inboxready/api-reference/optimize/mailgun/domain-tracking/put-v3-domains--name--tracking-click
payload := newUrlEncodedPayload()
payload.addValue("active", active)
_, err := makePutRequest(ctx, r, payload)
return err
}
func (mg *Client) UpdateUnsubscribeTracking(ctx context.Context, domain, active, htmlFooter, textFooter string) error {
r := newHTTPRequest(generateApiUrl(mg, 3, domainsEndpoint) + "/" + domain + "/tracking/unsubscribe")
r.setClient(mg.HTTPClient())
r.setBasicAuth(basicAuthUser, mg.APIKey())
// TODO(vtopc): should be "multipart/form-data" (NewFormDataPayload) according to the docs:
// https://documentation.mailgun.com/docs/inboxready/api-reference/optimize/mailgun/domain-tracking/put-v3-domains--name--tracking-unsubscribe
payload := newUrlEncodedPayload()
payload.addValue("active", active)
payload.addValue("html_footer", htmlFooter)
payload.addValue("text_footer", textFooter)
_, err := makePutRequest(ctx, r, payload)
return err
}
func (mg *Client) UpdateOpenTracking(ctx context.Context, domain, active string) error {
r := newHTTPRequest(generateApiUrl(mg, 3, domainsEndpoint) + "/" + domain + "/tracking/open")
r.setClient(mg.HTTPClient())
r.setBasicAuth(basicAuthUser, mg.APIKey())
// TODO(vtopc): should be "multipart/form-data" (NewFormDataPayload) according to the docs:
// https://documentation.mailgun.com/docs/inboxready/api-reference/optimize/mailgun/domain-tracking/put-v3-domains--name--tracking-open
payload := newUrlEncodedPayload()
payload.addValue("active", active)
_, err := makePutRequest(ctx, r, payload)
return err
}