Skip to content

Commit dd0c124

Browse files
committed
Stop throwing "exists" error on public forms
1 parent 62bce69 commit dd0c124

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

cmd/public.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ func handleSubscriptionForm(c echo.Context) error {
285285
// Insert the subscriber into the DB.
286286
req.Status = models.SubscriberStatusEnabled
287287
req.ListUUIDs = pq.StringArray(req.SubListUUIDs)
288-
if _, err := insertSubscriber(req.SubReq, app); err != nil {
288+
if _, err := insertSubscriber(req.SubReq, app); err != nil && err != errSubscriberExists {
289289
return c.Render(http.StatusInternalServerError, tplMessage,
290290
makeMsgTpl(app.i18n.T("public.errorTitle"), "", fmt.Sprintf("%s", err.(*echo.HTTPError).Message)))
291291
}

cmd/subscribers.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"database/sql"
66
"encoding/csv"
77
"encoding/json"
8+
"errors"
89
"fmt"
910
"net/http"
1011
"net/url"
@@ -67,6 +68,8 @@ var (
6768
}
6869

6970
subQuerySortFields = []string{"email", "name", "created_at", "updated_at"}
71+
72+
errSubscriberExists = errors.New("subscriber already exists")
7073
)
7174

7275
// handleGetSubscriber handles the retrieval of a single subscriber by ID.
@@ -272,6 +275,10 @@ func handleCreateSubscriber(c echo.Context) error {
272275
// Insert the subscriber into the DB.
273276
sub, err := insertSubscriber(req, app)
274277
if err != nil {
278+
if err == errSubscriberExists {
279+
return echo.NewHTTPError(http.StatusBadRequest, app.i18n.T("subscribers.emailExists"))
280+
}
281+
275282
return err
276283
}
277284

@@ -630,8 +637,7 @@ func insertSubscriber(req subimporter.SubReq, app *App) (models.Subscriber, erro
630637
req.ListUUIDs)
631638
if err != nil {
632639
if pqErr, ok := err.(*pq.Error); ok && pqErr.Constraint == "subscribers_email_key" {
633-
return req.Subscriber,
634-
echo.NewHTTPError(http.StatusBadRequest, app.i18n.T("subscribers.emailExists"))
640+
return req.Subscriber, errSubscriberExists
635641
}
636642

637643
app.log.Printf("error inserting subscriber: %v", err)

0 commit comments

Comments
 (0)