hub/database/migrations/functions/users/register_session.sql

21 lines
535 B
SQL

-- register_session registers the provided session in the database.
create or replace function register_session(p_session jsonb)
returns bytea as $$
declare
v_session_id bytea := gen_random_bytes(32);
begin
insert into session (
session_id,
user_id,
ip,
user_agent
) values (
sha512(v_session_id),
(p_session->>'user_id')::uuid,
nullif(p_session->>'ip', '')::inet,
nullif(p_session->>'user_agent', '')
);
return v_session_id;
end
$$ language plpgsql;