summaryrefslogtreecommitdiff
path: root/sql/functions/contact.mark_contact_us_post.sql
blob: 7bcc00103f5906b1721286ec575c424bbdd80662 (plain)
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
drop function contact.mark_contact_us_post (
    p_contact_us_post_id int,
    p_user_id int,
    p_read_p bool
);

create or replace function contact.mark_contact_us_post (
    p_contact_us_post_id int,
    p_user_id int,
    p_read_p bool
)
returns void
as $$
declare
  l_id bigint;
begin
    if(p_read_p) then
        select id into l_id
        from contact.contact_us_posts_read
        where contact_us_post_id = p_contact_us_post_id
            and user_id = p_user_id;

        if(l_id is null) then
            insert into contact.contact_us_posts_read (
                contact_us_post_id,
                user_id
            ) values (
                p_contact_us_post_id,
                p_user_id
            );
        end if;
    else
        delete from contact.contact_us_posts_read
        where contact_us_post_id = p_contact_us_post_id
            and user_id = p_user_id;
    end if;
end;
$$ language plpgsql;