diff --git a/public.go b/public.go index 6175615..506468b 100644 --- a/public.go +++ b/public.go @@ -255,9 +255,14 @@ func handleRegisterCampaignView(c echo.Context) error { campUUID = c.Param("campUUID") subUUID = c.Param("subUUID") ) - if _, err := app.queries.RegisterCampaignView.Exec(campUUID, subUUID); err != nil { - app.log.Printf("error registering campaign view: %s", err) + + // Exclude dummy hits from template previews. + if campUUID != dummyUUID && subUUID != dummyUUID { + if _, err := app.queries.RegisterCampaignView.Exec(campUUID, subUUID); err != nil { + app.log.Printf("error registering campaign view: %s", err) + } } + c.Response().Header().Set("Cache-Control", "no-cache") return c.Blob(http.StatusOK, "image/png", pixelPNG) } diff --git a/subscribers.go b/subscribers.go index b09656d..de02b65 100644 --- a/subscribers.go +++ b/subscribers.go @@ -17,6 +17,10 @@ import ( "github.com/lib/pq" ) +const ( + dummyUUID = "00000000-0000-0000-0000-000000000000" +) + // subQueryReq is a "catch all" struct for reading various // subscriber related requests. type subQueryReq struct { @@ -57,7 +61,7 @@ type subOptin struct { var dummySubscriber = models.Subscriber{ Email: "dummy@listmonk.app", Name: "Dummy Subscriber", - UUID: "00000000-0000-0000-0000-000000000000", + UUID: dummyUUID, } // handleGetSubscriber handles the retrieval of a single subscriber by ID. diff --git a/templates.go b/templates.go index fc4ff91..bcf3dd7 100644 --- a/templates.go +++ b/templates.go @@ -100,7 +100,7 @@ func handlePreviewTemplate(c echo.Context) error { // Compile the template. camp := models.Campaign{ - UUID: "00000000-0000-0000-0000-000000000000", + UUID: dummyUUID, Name: "Dummy Campaign", Subject: "Dummy Campaign Subject", FromEmail: "dummy-campaign@listmonk.app",