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