Mercurial > prosody-modules
comparison mod_conversejs/mod_conversejs.lua @ 3313:d6b922191aeb
mod_conversejs: Factor out option handling into a function for future reuse
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Mon, 10 Sep 2018 15:07:07 +0200 |
| parents | e714be00aaad |
| children | ab67f222d88b |
comparison
equal
deleted
inserted
replaced
| 3312:e714be00aaad | 3313:d6b922191aeb |
|---|---|
| 44 | 44 |
| 45 js_template = "converse.initialize(%s);"; | 45 js_template = "converse.initialize(%s);"; |
| 46 | 46 |
| 47 local more_options = module:get_option("conversejs_options"); | 47 local more_options = module:get_option("conversejs_options"); |
| 48 | 48 |
| 49 local function get_converse_options() | |
| 50 local allow_registration = module:get_option_boolean("allow_registration", false); | |
| 51 local converse_options = { | |
| 52 bosh_service_url = module:http_url("bosh","/http-bind"); | |
| 53 websocket_url = has_ws and module:http_url("websocket","xmpp-websocket"):gsub("^http", "ws") or nil; | |
| 54 authentication = module:get_option_string("authentication") == "anonymous" and "anonymous" or "login"; | |
| 55 jid = module.host; | |
| 56 default_domain = module.host; | |
| 57 domain_placeholder = module.host; | |
| 58 allow_registration = allow_registration; | |
| 59 registration_domain = allow_registration and module.host or nil; | |
| 60 }; | |
| 61 | |
| 62 if type(more_options) == "table" then | |
| 63 for k,v in pairs(more_options) do | |
| 64 converse_options[k] = v; | |
| 65 end | |
| 66 end | |
| 67 | |
| 68 return converse_options; | |
| 69 end | |
| 70 | |
| 49 module:provides("http", { | 71 module:provides("http", { |
| 50 route = { | 72 route = { |
| 51 GET = function (event) | 73 GET = function (event) |
| 52 local allow_registration = module:get_option_boolean("allow_registration", false); | 74 local converse_options = get_converse_options(); |
| 53 local converse_options = { | |
| 54 bosh_service_url = module:http_url("bosh","/http-bind"); | |
| 55 websocket_url = has_ws and module:http_url("websocket","xmpp-websocket"):gsub("^http", "ws") or nil; | |
| 56 authentication = module:get_option_string("authentication") == "anonymous" and "anonymous" or "login"; | |
| 57 jid = module.host; | |
| 58 default_domain = module.host; | |
| 59 domain_placeholder = module.host; | |
| 60 allow_registration = allow_registration; | |
| 61 registration_domain = allow_registration and module.host or nil; | |
| 62 }; | |
| 63 | |
| 64 if type(more_options) == "table" then | |
| 65 for k,v in pairs(more_options) do | |
| 66 converse_options[k] = v; | |
| 67 end | |
| 68 end | |
| 69 | 75 |
| 70 event.response.headers.content_type = "text/html"; | 76 event.response.headers.content_type = "text/html"; |
| 71 return html_template:format(js_template:format(json_encode(converse_options))); | 77 return html_template:format(js_template:format(json_encode(converse_options))); |
| 72 end; | 78 end; |
| 73 } | 79 } |
