21 lines
746 B
PL/PgSQL
21 lines
746 B
PL/PgSQL
create or replace function follow(reference regclass, target_id uuid, citizen_id uuid) returns void
|
|
language plpgsql as
|
|
$$
|
|
declare
|
|
_citizen_id alias for citizen_id;
|
|
_target_id alias for target_id;
|
|
begin
|
|
if reference = 'article'::regclass then
|
|
insert into follow_article (citizen_id, target_id)
|
|
values (_citizen_id, _target_id);
|
|
elseif reference = 'constitution'::regclass then
|
|
insert into follow_constitution (citizen_id, target_id)
|
|
values (_citizen_id, _target_id);
|
|
elseif reference = 'citizen'::regclass then
|
|
insert into follow_citizen (citizen_id, target_id)
|
|
values (_citizen_id, _target_id);
|
|
end if;
|
|
end;
|
|
$$;
|
|
|
|
-- drop function if exists follow(regclass, uuid, uuid); |