diff --git a/comms/email/initial.go b/comms/email/initial.go index bfc96d29..940df96e 100644 --- a/comms/email/initial.go +++ b/comms/email/initial.go @@ -39,8 +39,8 @@ func maybeSendInitialEmail(ctx context.Context, destination string) error { func urlEmailInBrowser(public_id string) string { return config.MakeURLReport("/email/render/%s", public_id) } -func urlUnsubscribe(address string) string { - return config.MakeURLReport("/email/unsubscribe?email=%s") +func urlUnsubscribe(email string) string { + return config.MakeURLReport("/email/unsubscribe?email=%s", email) } func sendEmailInitialContact(ctx context.Context, destination string) error { //data := pgtypes.HStore{} diff --git a/rmo/email.go b/rmo/email.go index 20854b59..769ea767 100644 --- a/rmo/email.go +++ b/rmo/email.go @@ -16,9 +16,10 @@ type ContentEmail struct { } var ( - EmailConfirmT = buildTemplate("email-confirm", "base") - EmailConfirmCompleteT = buildTemplate("email-confirm-complete", "base") - EmailUnsubscribeT = buildTemplate("email-unsubscribe", "base") + EmailConfirmT = buildTemplate("email-confirm", "base") + EmailConfirmCompleteT = buildTemplate("email-confirm-complete", "base") + EmailUnsubscribeT = buildTemplate("email-unsubscribe", "base") + EmailUnsubscribeCompleteT = buildTemplate("email-unsubscribe-complete", "base") ) func getEmailByCode(w http.ResponseWriter, r *http.Request) { @@ -85,6 +86,13 @@ func getEmailUnsubscribe(w http.ResponseWriter, r *http.Request) { }, ) } +func getEmailUnsubscribeComplete(w http.ResponseWriter, r *http.Request) { + html.RenderOrError( + w, + EmailUnsubscribeCompleteT, + map[string]string{}, + ) +} func postEmailConfirm(w http.ResponseWriter, r *http.Request) { email := r.PostFormValue("email") if email == "" { @@ -115,13 +123,7 @@ func postEmailUnsubscribe(w http.ResponseWriter, r *http.Request) { return } err = email_contact.Update(ctx, db.PGInstance.BobDB, &models.CommsEmailContactSetter{ - Confirmed: omit.From(true), + IsSubscribed: omit.From(false), }) - html.RenderOrError( - w, - EmailConfirmCompleteT, - ContentEmail{ - Email: email, - }, - ) + http.Redirect(w, r, "/email/unsubscribe/complete", http.StatusFound) } diff --git a/rmo/template/email-unsubscribe-complete.html b/rmo/template/email-unsubscribe-complete.html new file mode 100644 index 00000000..cda6cbe2 --- /dev/null +++ b/rmo/template/email-unsubscribe-complete.html @@ -0,0 +1,23 @@ +{{template "base.html" .}} + +{{define "title"}}Main{{end}} +{{define "extraheader"}} +{{end}} +{{define "content"}} + +
+
+ +
+
+
+

Unsubscribed!

+

You will not receive any further emails from Report Mosquitoes Online.

+

If this was an accident, or you changed your mind, you can re-subscribe

+
+
+
+ +{{end}} diff --git a/rmo/template/email-unsubscribe.html b/rmo/template/email-unsubscribe.html new file mode 100644 index 00000000..34d0bcc5 --- /dev/null +++ b/rmo/template/email-unsubscribe.html @@ -0,0 +1,29 @@ +{{template "base.html" .}} + +{{define "title"}}Main{{end}} +{{define "extraheader"}} +{{end}} +{{define "content"}} + +
+
+ +
+
+
+
+
+ + +
+ +
+
+
+
+ +{{end}}