CREATE OR REPLACE FUNCTION public.handle_new_user()
RETURNS TRIGGER
LANGUAGE plpgsql
SECURITY DEFINER
SET search_path = public
AS $$
BEGIN
-- Insert user data into public.test2
INSERT INTO public.test2 (id, email, role, first_name, last_name, age, gender)
VALUES (
NEW.id,
NEW.email,
COALESCE(NEW.raw_user_meta_data->>'role', 'student'), -- Default to 'student' if role is missing
NEW.raw_user_meta_data->>'first_name', -- Fetch first_name from raw_user_meta_data
NEW.raw_user_meta_data->>'last_name', -- Fetch last_name from raw_user_meta_data
COALESCE(NULLIF(NEW.raw_user_meta_data->>'age', '')::INTEGER, 0), -- Default to 0 if age is missing or invalid
NEW.raw_user_meta_data->>'gender' -- Fetch gender from raw_user_meta_data
);
-- Return the new row as required by the trigger function
RETURN NEW;
END;
$$;
CREATE OR REPLACE FUNCTION public.handle_new_user()
RETURNS TRIGGER
LANGUAGE plpgsql
SECURITY DEFINER
SET search_path = public
AS $$
BEGIN
-- Insert user data into public.test2
INSERT INTO public.test2 (id, email, role, first_name, last_name, age, gender)
VALUES (
NEW.id,
NEW.email,
COALESCE(NEW.raw_user_meta_data->>'role', 'student'), -- Default to 'student' if role is missing
NEW.raw_user_meta_data->>'first_name', -- Fetch first_name from raw_user_meta_data
NEW.raw_user_meta_data->>'last_name', -- Fetch last_name from raw_user_meta_data
COALESCE(NULLIF(NEW.raw_user_meta_data->>'age', '')::INTEGER, 0), -- Default to 0 if age is missing or invalid
NEW.raw_user_meta_data->>'gender' -- Fetch gender from raw_user_meta_data
);
-- Return the new row as required by the trigger function
RETURN NEW;
END;
$$;