From d8c32ef0a30dea449b08412eeafac3c6c0f17aa4 Mon Sep 17 00:00:00 2001
From: Kim Alvefur <zash@zash.se>
Date: Thu, 6 Sep 2018 23:33:44 +0200
Subject: mod_vcard_legacy: Factor out error handling into a function

This is a lite version of pubsub_error_reply() in mod_pubsub
---
 plugins/mod_vcard_legacy.lua | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

(limited to 'plugins')

diff --git a/plugins/mod_vcard_legacy.lua b/plugins/mod_vcard_legacy.lua
index 4320d96c..f52306f4 100644
--- a/plugins/mod_vcard_legacy.lua
+++ b/plugins/mod_vcard_legacy.lua
@@ -13,6 +13,16 @@ module:hook("account-disco-info", function (event)
 	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
 -- <foo><text>hey</text></foo> -> <FOO>hey</FOO>
 local simple_map = {
@@ -240,12 +250,8 @@ module:hook("iq-set/self/vcard-temp:vCard", function (event)
 	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;
-- 
cgit v1.2.3