mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-20 09:11:12 -05:00
Fix log_moderation_action function
This commit is contained in:
@@ -0,0 +1,62 @@
|
|||||||
|
-- Fix log_moderation_action to write to relational moderation_audit_metadata table
|
||||||
|
-- Removes reference to non-existent metadata column
|
||||||
|
|
||||||
|
CREATE OR REPLACE FUNCTION public.log_moderation_action(
|
||||||
|
_submission_id UUID,
|
||||||
|
_action TEXT,
|
||||||
|
_previous_status TEXT DEFAULT NULL,
|
||||||
|
_new_status TEXT DEFAULT NULL,
|
||||||
|
_notes TEXT DEFAULT NULL,
|
||||||
|
_metadata JSONB DEFAULT '{}'::jsonb
|
||||||
|
)
|
||||||
|
RETURNS UUID
|
||||||
|
LANGUAGE plpgsql
|
||||||
|
SECURITY DEFINER
|
||||||
|
SET search_path = public
|
||||||
|
AS $$
|
||||||
|
DECLARE
|
||||||
|
_log_id UUID;
|
||||||
|
_metadata_record record;
|
||||||
|
BEGIN
|
||||||
|
-- Insert into moderation_audit_log (without metadata JSONB column)
|
||||||
|
INSERT INTO public.moderation_audit_log (
|
||||||
|
submission_id,
|
||||||
|
moderator_id,
|
||||||
|
action,
|
||||||
|
previous_status,
|
||||||
|
new_status,
|
||||||
|
notes
|
||||||
|
) VALUES (
|
||||||
|
_submission_id,
|
||||||
|
auth.uid(),
|
||||||
|
_action,
|
||||||
|
_previous_status,
|
||||||
|
_new_status,
|
||||||
|
_notes
|
||||||
|
)
|
||||||
|
RETURNING id INTO _log_id;
|
||||||
|
|
||||||
|
-- Write metadata to relational moderation_audit_metadata table
|
||||||
|
IF _metadata IS NOT NULL AND jsonb_typeof(_metadata) = 'object' THEN
|
||||||
|
FOR _metadata_record IN
|
||||||
|
SELECT key, value::text as text_value
|
||||||
|
FROM jsonb_each_text(_metadata)
|
||||||
|
LOOP
|
||||||
|
INSERT INTO public.moderation_audit_metadata (
|
||||||
|
audit_log_id,
|
||||||
|
metadata_key,
|
||||||
|
metadata_value
|
||||||
|
) VALUES (
|
||||||
|
_log_id,
|
||||||
|
_metadata_record.key,
|
||||||
|
_metadata_record.text_value
|
||||||
|
);
|
||||||
|
END LOOP;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
RETURN _log_id;
|
||||||
|
END;
|
||||||
|
$$;
|
||||||
|
|
||||||
|
COMMENT ON FUNCTION public.log_moderation_action(UUID, TEXT, TEXT, TEXT, TEXT, JSONB) IS
|
||||||
|
'Logs moderation actions with metadata stored relationally in moderation_audit_metadata table';
|
||||||
Reference in New Issue
Block a user