--
-- bookmark__toggle_open_close/2
--
create or replace function bookmark__toggle_open_close(
p_bookmark_id integer,
p_browsing_user_id bigint
) returns int4 as $$
DECLARE
BEGIN
-- Toggle the closed_p flag
UPDATE bm_in_closed_p SET closed_p =
(
SELECT CASE WHEN closed_p = TRUE THEN FALSE ELSE TRUE END
FROM bm_in_closed_p
WHERE bookmark_id = p_bookmark_id
AND in_closed_p_id = p_browsing_user_id
)
WHERE bookmark_id = p_bookmark_id
AND in_closed_p_id = p_browsing_user_id;
-- Now update the in_closed_p status for this user for all bookmarks under
-- the toggled folder
perform bookmark__update_in_closed_p_one_user (p_bookmark_id, p_browsing_user_id);
RETURN 0;
END;
$$ language plpgsql;