Comparison

mod_bookmarks/mod_bookmarks.lua @ 3233:176b537a658c

mod_bookmarks: Send back empty Private XML bookmarks on empty PEP bookmarks.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Sat, 18 Aug 2018 14:43:58 +0100
parent 3232:34e30a891bd3
child 3234:b1e25943a004
comparison
equal deleted inserted replaced
3232:34e30a891bd3 3233:176b537a658c
21 21
22 module:log("debug", "Getting private bookmarks: %s", bookmarks); 22 module:log("debug", "Getting private bookmarks: %s", bookmarks);
23 23
24 local username = session.username; 24 local username = session.username;
25 local service = mod_pep.get_pep_service(username); 25 local service = mod_pep.get_pep_service(username);
26 module:log("debug", "%s", session.full_jid);
27 local ok, id, item = service:get_last_item("storage:bookmarks", session.full_jid); 26 local ok, id, item = service:get_last_item("storage:bookmarks", session.full_jid);
28 if not ok then 27 if not ok then
29 module:log("error", "Failed to retrieve PEP bookmarks of %s: %s", username, id); 28 module:log("error", "Failed to retrieve PEP bookmarks of %s: %s", username, id);
30 session.send(st.error_reply(stanza, "cancel", "internal-server-error", "Failed to retrive bookmarks from PEP")); 29 session.send(st.error_reply(stanza, "cancel", "internal-server-error", "Failed to retrive bookmarks from PEP"));
31 return; 30 return;
32 end 31 end
32 if not id or not item then
33 module:log("debug", "Got no PEP bookmarks item for %s, returning empty private bookmarks", username);
34 session.send(st.reply(stanza):add_child(query));
35 return
36 end
37 module:log("debug", "Got item %s: %s", id, item);
33 38
34 local content = item.tags[1]; 39 local content = item.tags[1];
35 module:log("debug", "Sending back private for %s: %s", username, content); 40 module:log("debug", "Sending back private for %s: %s", username, content);
36 session.send(st.reply(stanza):query("jabber:iq:private"):add_child(content)); 41 session.send(st.reply(stanza):query("jabber:iq:private"):add_child(content));
37 return true; 42 return true;