# HG changeset patch # User Trần H. Trung # Date 1690796508 -25200 # Node ID 1664bd4c274b0e8517aff43b6c6295c6533194fa # Parent 4379e0e84ee5f087db1c3c07cfb80fa0554c7b9e mod_invites_api: refactor to keep consistent error message. diff -r 4379e0e84ee5 -r 1664bd4c274b mod_invites_api/mod_invites_api.lua --- a/mod_invites_api/mod_invites_api.lua Mon Jul 31 13:15:54 2023 +0700 +++ b/mod_invites_api/mod_invites_api.lua Mon Jul 31 16:41:48 2023 +0700 @@ -329,10 +329,27 @@ api_key_store = module:open_store("invite_api_keys", "map"); api_key_store_kv = module:open_store("invite_api_keys"); + local found = false; + local function error_found(username, name) + if name then + print("Error: Could not find "..name.." in "..domain); + print(""); + print("To make this API key, run:"); + print("> prosodyctl "..module.name.." create "..domain.." "..name); + return 1; + end + if username then + print("Error: Could not find "..username.."@"..domain); + print(""); + print("To make this API key, run:"); + print("> prosodyctl "..module.name.." create "..username.."@"..domain); + return 1; + end + end + if command == "create" then local util_id = require "util.id".short(); local util_token = require "util.id".long(); - local found = false; local os_time = os.time(); if username then if usermanager.user_exists(username, module.host) then @@ -370,7 +387,6 @@ print("Error: key for host needs a `NAME`."); return; end - found = false; get_value(function (id, info) if domain == info.jid and arg_name == info.name then date = datetime.datetime(info.created_at); @@ -400,7 +416,6 @@ local util_token = require "util.id".long(); local os_time = os.time(); if username then - local found; if usermanager.user_exists(username, module.host) then get_value(function (id, info) if username.."@"..module.host == info.jid then @@ -410,13 +425,13 @@ end end); if not found then - print("Error: Could not find the key for "..username.."@"..domain); + error_found(username); return 1; end print("Error: not allow to rename user's account."); return 1; else - print("Error: "..username.."@"..domain.." does not exists."); + print("Error: "..username.."@"..domain.." doesn't exists!"); return 1; end elseif domain then @@ -430,8 +445,6 @@ print("Error: need a `NEW_NAME` to replace "..arg_name_orig); return 1; end - - found = false; get_value(function (id, info) if domain == info.jid and arg_name_orig == info.name then api_key_store:set(nil, id, { @@ -449,11 +462,7 @@ end end); if not found then - date = datetime.datetime(os_time); - print("Error: Could not find "..arg_name_orig.." in "..domain); - print(""); - print("To make this API key, run:"); - print("> prosodyctl "..module.name.." create "..domain.." "..arg_name_orig); + error_found(nil, arg_name_orig); return 1; end return; @@ -462,7 +471,6 @@ local util_token = require "util.id".long(); local os_time = os.time(); if username then - local found; if usermanager.user_exists(username, module.host) then get_value(function (id, info) if username.."@"..module.host == info.jid then @@ -481,10 +489,7 @@ end end); if not found then - print("Error: Could not find the key for "..username.."@"..domain); - print(""); - print("To make this API key, run:"); - print("> prosodyctl "..module.name.." create "..username.."@"..domain); + error_found(username); return 1; end return; @@ -498,7 +503,6 @@ print("Error: key for host needs a `NAME`."); return 1; end - found = false; get_value(function (id, info) if domain == info.jid and arg_name == info.name then api_key_store:set(nil, id, { @@ -516,17 +520,13 @@ end end); if not found then - print("Error: Could not find "..arg_name.." in "..domain); - print(""); - print("To make this API key, run:"); - print("> prosodyctl "..module.name.." create "..domain.." "..arg_name); + error_found(nil, arg_name); return 1; end return; end elseif command == "get" then local name = table.remove(arg, 1); - local found = false; if name and not username then get_value(function (id, info) if info.name == name then @@ -535,11 +535,7 @@ end end); if found == false then - print("Error: could not find "..name.." in "..domain); - print(""); - print("You can create it with:"); - print(""); - print("> prosodyctl "..module.name.." create "..domain.." "..name); + error_found(nil, name); end return; elseif username then @@ -551,11 +547,7 @@ end end); if found == false then - print("Error: could not find the key for "..username.."@"..domain); - print(""); - print("You can create it with:"); - print(""); - print("> prosodyctl "..module.name.." create "..username.."@"..domain); + error_found(username); end return; else @@ -601,16 +593,26 @@ get_value(function (id, info) if info.name == name then print(id); + found = true; end end); + if not found then + error_found(nil, name); + return 1; + end return; elseif username then get_value(function (id, info) local j = jid.prepped_split(info.jid); if j == username then print(id); + found = true end end); + if not found then + error_found(username); + return 1; + end return; else get_value(function (id, info) @@ -628,16 +630,26 @@ get_value(function (id, info) if info.name == name then print(id.."/"..info.token); + found = true; end end); + if not found then + error_found(nil, name); + return 1; + end return; elseif username then get_value(function (id, info) local j = jid.prepped_split(info.jid); if j == username then print(id.."/"..info.token); + found = true; end end); + if not found then + error_found(username); + return 1; + end return; else get_value(function (id, info) @@ -650,7 +662,6 @@ return; end elseif command == "url" then - found = false; local name = table.remove(arg, 1); if name and not username then get_value(function (id, info) @@ -660,11 +671,7 @@ end end); if not found then - date = datetime.datetime(os_time); - print("Error: Could not find "..name.." in "..domain); - print(""); - print("To make this API key, run:"); - print("> prosodyctl "..module.name.." create "..domain.." "..name); + error_found(nil, name); return 1; end return; @@ -677,11 +684,7 @@ end end); if not found then - date = datetime.datetime(os_time); - print("Error: Could not find "..username.."@"..domain); - print(""); - print("To make this API key, run:"); - print("> prosodyctl "..module.name.." create "..username.."@"..domain); + error_found(username); return 1; end return; @@ -726,7 +729,7 @@ end local arg_id = table.remove(arg, 1); if not api_key_store:get(nil, arg_id) then - print("Error: key not found"); + print("Error: key not found!"); return 1; else get_value(function (id, info)