set_user_lang¶
Сигнатура: set_user_lang("p_tg_user_id" bigint, "p_lang" "text") RETURNS "jsonb"
Язык: sql
Security: DEFINER
Тело функции¶
declare
v_user_id uuid;
v_lang text := lower(coalesce(p_lang,'ru'));
begin
if v_lang not in ('ru','en') then
v_lang := 'ru';
end if;
select id into v_user_id
from public.users
where tg_user_id = p_tg_user_id::bigint
limit 1;
if v_user_id is null then
insert into public.users (tg_user_id, lang)
values (p_tg_user_id::bigint, v_lang)
returning id into v_user_id;
else
update public.users
set lang = v_lang
where id = v_user_id;
end if;
return jsonb_build_object('ok', true, 'user_id', v_user_id, 'lang', v_lang);
end;