From a65527575499ab729b1ba5c6ff7b29ac51bcfd83 Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Wed, 25 May 2022 21:12:19 +0800 Subject: [PATCH] Add unique constraint on user_id and event_types --- packages/api/src/schema.ts | 1 + packages/db/migrations/0083.do.webhooks.sql | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/api/src/schema.ts b/packages/api/src/schema.ts index c198b7f13..254d1a076 100755 --- a/packages/api/src/schema.ts +++ b/packages/api/src/schema.ts @@ -1614,6 +1614,7 @@ const schema = gql` enum CreateWebhookErrorCode { UNAUTHORIZED BAD_REQUEST + ALREADY_EXISTS } # Mutations diff --git a/packages/db/migrations/0083.do.webhooks.sql b/packages/db/migrations/0083.do.webhooks.sql index aa044413b..018762b74 100755 --- a/packages/db/migrations/0083.do.webhooks.sql +++ b/packages/db/migrations/0083.do.webhooks.sql @@ -6,13 +6,15 @@ BEGIN; CREATE TABLE omnivore.webhooks ( id uuid PRIMARY KEY DEFAULT uuid_generate_v1mc(), + user_id uuid NOT NULL REFERENCES omnivore.user ON DELETE CASCADE, url text NOT NULL, method text NOT NULL DEFAULT 'POST', content_type text NOT NULL DEFAULT 'application/json', active boolean NOT NULL DEFAULT true, event_types text[] NOT NULL, created_at timestamptz NOT NULL DEFAULT current_timestamp, - updated_at timestamptz NOT NULL DEFAULT current_timestamp + updated_at timestamptz NOT NULL DEFAULT current_timestamp, + UNIQUE (user_id, event_types) ); CREATE TRIGGER update_webhook_modtime BEFORE UPDATE ON omnivore.webhooks