DECLARE
v_processed_urls TEXT[] := ARRAY[]::TEXT[];
v_path TEXT;
v_full_url TEXT;
v_base_url TEXT;
BEGIN
-- If the input array is NULL or empty, return an empty JSON array
IF p_media_paths IS NULL OR array_length(p_media_paths, 1) IS NULL THEN
RETURN '[]'::jsonb;
END IF;
-- Get the base URL for your Supabase project storage
-- Replace 'your-project-id' with your actual project ID
-- You can also store this in a settings table or environment variable
v_base_url := 'https://your-project-id.supabase.co/storage/v1/object/posts/';
-- Loop through each path in the input array
FOREACH v_path IN ARRAY p_media_paths
LOOP
-- For now, we'll construct public URLs
-- Note: These will be public URLs, not signed URLs
IF v_path IS NOT NULL AND v_path != '' THEN
v_full_url := v_base_url || v_path;
v_processed_urls := array_append(v_processed_urls, v_full_url);
END IF;
END LOOP;
-- Return the array of URLs as JSONB
RETURN to_jsonb(v_processed_urls);
END;
DECLARE
v_processed_urls TEXT[] := ARRAY[]::TEXT[];
v_path TEXT;
v_full_url TEXT;
v_base_url TEXT;
BEGIN
-- If the input array is NULL or empty, return an empty JSON array
IF p_media_paths IS NULL OR array_length(p_media_paths, 1) IS NULL THEN
RETURN '[]'::jsonb;
END IF;
-- Get the base URL for your Supabase project storage
-- Replace 'your-project-id' with your actual project ID
-- You can also store this in a settings table or environment variable
v_base_url := 'https://your-project-id.supabase.co/storage/v1/object/posts/';
-- Loop through each path in the input array
FOREACH v_path IN ARRAY p_media_paths
LOOP
-- For now, we'll construct public URLs
-- Note: These will be public URLs, not signed URLs
IF v_path IS NOT NULL AND v_path != '' THEN
v_full_url := v_base_url || v_path;
v_processed_urls := array_append(v_processed_urls, v_full_url);
END IF;
END LOOP;
-- Return the array of URLs as JSONB
RETURN to_jsonb(v_processed_urls);
END;