feat: add RPC for public lead creation and update migrations in docker-compose files
Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
-- =============================================================================
|
||||
-- MC Cars - Public lead creation RPC
|
||||
-- Allows anon/authenticated callers to create leads and receive the inserted id
|
||||
-- without granting SELECT on public.leads.
|
||||
-- =============================================================================
|
||||
|
||||
create or replace function public.create_lead(
|
||||
p_name text,
|
||||
p_email text,
|
||||
p_phone text default '',
|
||||
p_vehicle_id uuid default null,
|
||||
p_vehicle_label text default '',
|
||||
p_date_from date default null,
|
||||
p_date_to date default null,
|
||||
p_message text default '',
|
||||
p_source text default 'website'
|
||||
)
|
||||
returns uuid
|
||||
language plpgsql
|
||||
security definer
|
||||
set search_path = public
|
||||
as $$
|
||||
declare
|
||||
v_id uuid;
|
||||
begin
|
||||
insert into public.leads (
|
||||
name,
|
||||
email,
|
||||
phone,
|
||||
vehicle_id,
|
||||
vehicle_label,
|
||||
date_from,
|
||||
date_to,
|
||||
message,
|
||||
source
|
||||
)
|
||||
values (
|
||||
p_name,
|
||||
p_email,
|
||||
coalesce(p_phone, ''),
|
||||
p_vehicle_id,
|
||||
coalesce(p_vehicle_label, ''),
|
||||
p_date_from,
|
||||
p_date_to,
|
||||
coalesce(p_message, ''),
|
||||
coalesce(p_source, 'website')
|
||||
)
|
||||
returning id into v_id;
|
||||
|
||||
return v_id;
|
||||
end;
|
||||
$$;
|
||||
|
||||
revoke all on function public.create_lead(text, text, text, uuid, text, date, date, text, text) from public;
|
||||
grant execute on function public.create_lead(text, text, text, uuid, text, date, date, text, text) to anon, authenticated, service_role;
|
||||
|
||||
notify pgrst, 'reload schema';
|
||||
Reference in New Issue
Block a user