Fix sag status constraint to support active case statuses
This commit is contained in:
parent
f4bc2828e8
commit
1e84ba267c
48
migrations/190_sag_status_constraint_expand.sql
Normal file
48
migrations/190_sag_status_constraint_expand.sql
Normal file
@ -0,0 +1,48 @@
|
||||
-- Migration 190: Align sag_sager status constraint with current case status model
|
||||
-- Fixes PATCH /api/v1/sag/{id} failures when using statuses beyond 'åben'/'lukket'.
|
||||
|
||||
DO $$
|
||||
DECLARE
|
||||
constraint_row RECORD;
|
||||
BEGIN
|
||||
-- Drop legacy check constraints on sag_sager.status regardless of their generated name.
|
||||
FOR constraint_row IN
|
||||
SELECT c.conname
|
||||
FROM pg_constraint c
|
||||
JOIN pg_class t ON t.oid = c.conrelid
|
||||
JOIN pg_namespace n ON n.oid = t.relnamespace
|
||||
WHERE n.nspname = 'public'
|
||||
AND t.relname = 'sag_sager'
|
||||
AND c.contype = 'c'
|
||||
AND pg_get_constraintdef(c.oid) ILIKE '%status%'
|
||||
LOOP
|
||||
EXECUTE format('ALTER TABLE public.sag_sager DROP CONSTRAINT IF EXISTS %I', constraint_row.conname);
|
||||
END LOOP;
|
||||
END $$;
|
||||
|
||||
UPDATE public.sag_sager
|
||||
SET status = CASE
|
||||
WHEN lower(trim(status)) IN ('aaben', 'open') THEN 'åben'
|
||||
WHEN lower(trim(status)) IN ('i_gang', 'in_progress', 'under behandling') THEN 'under behandling'
|
||||
WHEN lower(trim(status)) IN ('on_hold', 'waiting', 'afventer') THEN 'afventer'
|
||||
WHEN lower(trim(status)) IN ('resolved', 'løst') THEN 'løst'
|
||||
WHEN lower(trim(status)) IN ('closed', 'afsluttet', 'lukket') THEN 'lukket'
|
||||
ELSE status
|
||||
END;
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM pg_constraint c
|
||||
JOIN pg_class t ON t.oid = c.conrelid
|
||||
JOIN pg_namespace n ON n.oid = t.relnamespace
|
||||
WHERE n.nspname = 'public'
|
||||
AND t.relname = 'sag_sager'
|
||||
AND c.conname = 'sag_sager_status_check'
|
||||
) THEN
|
||||
ALTER TABLE public.sag_sager
|
||||
ADD CONSTRAINT sag_sager_status_check
|
||||
CHECK (status IN ('åben', 'under behandling', 'afventer', 'løst', 'lukket'));
|
||||
END IF;
|
||||
END $$;
|
||||
Loading…
Reference in New Issue
Block a user