-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcallback-requests-rpc.sql
More file actions
55 lines (52 loc) · 1.02 KB
/
Copy pathcallback-requests-rpc.sql
File metadata and controls
55 lines (52 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
-- Create a stored procedure for callback request insertion
-- This helps bypass schema cache issues and provides more flexibility
CREATE OR REPLACE FUNCTION insert_callback_request(
p_name TEXT,
p_email TEXT,
p_phone TEXT,
p_preferred_time TEXT,
p_message TEXT
) RETURNS JSONB
LANGUAGE plpgsql
SECURITY DEFINER
AS $$
DECLARE
v_id UUID;
v_result JSONB;
BEGIN
-- Insert the callback request
INSERT INTO callback_requests (
name,
email,
phone,
preferred_time,
message,
status,
created_at,
updated_at
) VALUES (
p_name,
p_email,
p_phone,
p_preferred_time,
p_message,
'pending',
NOW(),
NOW()
) RETURNING id INTO v_id;
-- Return the created record as JSON
SELECT jsonb_build_object(
'id', id,
'name', name,
'email', email,
'phone', phone,
'preferred_time', preferred_time,
'message', message,
'status', status,
'created_at', created_at
) INTO v_result
FROM callback_requests
WHERE id = v_id;
RETURN v_result;
END;
$$;