# HG changeset patch # User Kim Alvefur # Date 1536269624 -7200 # Node ID 628b998113014ec396f496b7e08adf5c0fce6b29 # Parent 37e2cace1f2a536ded6aed09f1d2096e31107b79 mod_vcard_legacy: Factor out error handling into a function This is a lite version of pubsub_error_reply() in mod_pubsub diff -r 37e2cace1f2a -r 628b99811301 plugins/mod_vcard_legacy.lua --- a/plugins/mod_vcard_legacy.lua Thu Sep 06 23:05:38 2018 +0200 +++ b/plugins/mod_vcard_legacy.lua Thu Sep 06 23:33:44 2018 +0200 @@ -13,6 +13,16 @@ event.reply:tag("feature", { var = "urn:xmpp:pep-vcard-conversion:0" }):up(); end); +local function handle_error(origin, stanza, err) + if err == "forbidden" then + origin.send(st.error_reply(stanza, "auth", "forbidden")); + elseif err == "internal-server-error" then + origin.send(st.error_reply(stanza, "wait", "internal-server-error")); + else + origin.send(st.error_reply(stanza, "modify", "undefined-condition", err)); + end +end + -- Simple translations -- hey -> hey local simple_map = { @@ -240,12 +250,8 @@ local ok, err = pep_service:publish("urn:xmpp:vcard4", origin.full_jid, "current", vcard4); if ok then origin.send(st.reply(stanza)); - elseif err == "forbidden" then - origin.send(st.error_reply(stanza, "auth", "forbidden")); - elseif err == "internal-server-error" then - origin.send(st.error_reply(stanza, "wait", "internal-server-error")); else - origin.send(st.error_reply(stanza, "modify", "undefined-condition", err)); + handle_error(origin, stanza, err); end return true;