From 81fe874ee731f817c91d2d3d06bb7c8a8ee5aeb1 Mon Sep 17 00:00:00 2001 From: Kailash Nadh Date: Sat, 20 Jul 2019 12:54:30 +0530 Subject: [PATCH] Refactor subscriber delete query to support UUIDs --- queries.sql | 4 ++-- subscribers.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/queries.sql b/queries.sql index 6d69b96..30d35a1 100644 --- a/queries.sql +++ b/queries.sql @@ -107,8 +107,8 @@ INSERT INTO subscriber_lists (subscriber_id, list_id, status) SET status = (CASE WHEN $4='blacklisted' THEN 'unsubscribed'::subscription_status ELSE 'unconfirmed' END); -- name: delete-subscribers --- Delete one or more subscribers. -DELETE FROM subscribers WHERE id = ANY($1); +-- Delete one or more subscribers by ID or UUID. +DELETE FROM subscribers WHERE CASE WHEN ARRAY_LENGTH($1::INT[], 1) > 0 THEN id = ANY($1) ELSE uuid = ANY($2::UUID[]) END; -- name: blacklist-subscribers WITH b AS ( diff --git a/subscribers.go b/subscribers.go index b447e1a..2e8ee86 100644 --- a/subscribers.go +++ b/subscribers.go @@ -327,7 +327,7 @@ func handleDeleteSubscribers(c echo.Context) error { IDs = i } - if _, err := app.Queries.DeleteSubscribers.Exec(IDs); err != nil { + if _, err := app.Queries.DeleteSubscribers.Exec(IDs, nil); err != nil { return echo.NewHTTPError(http.StatusInternalServerError, fmt.Sprintf("Error deleting: %v", err)) }