Software / code / prosody-modules
Comparison
mod_rest/mod_rest.lua @ 3862:3b6b8dcff78e
mod_rest: Log connectivity problems via module status API
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sat, 25 Jan 2020 20:06:48 +0100 |
| parent | 3861:ede3d1724dd1 |
| child | 3864:d845475c75f3 |
comparison
equal
deleted
inserted
replaced
| 3861:ede3d1724dd1 | 3862:3b6b8dcff78e |
|---|---|
| 151 local send_type = module:get_option_string("rest_callback_content_type", "application/xmpp+xml"); | 151 local send_type = module:get_option_string("rest_callback_content_type", "application/xmpp+xml"); |
| 152 if send_type == "json" then | 152 if send_type == "json" then |
| 153 send_type = "application/json"; | 153 send_type = "application/json"; |
| 154 end | 154 end |
| 155 | 155 |
| 156 module:set_status("info", "Not yet connected"); | |
| 156 http.request(rest_url, { | 157 http.request(rest_url, { |
| 157 method = "OPTIONS", | 158 method = "OPTIONS", |
| 158 }, function (body, code, response) | 159 }, function (body, code, response) |
| 160 if code == 0 then | |
| 161 return module:log_status("error", "Could not connect to callback URL %q: %s", rest_url, body); | |
| 162 else | |
| 163 module:set_status("info", "Connected"); | |
| 164 end | |
| 159 if code == 200 and response.headers.accept then | 165 if code == 200 and response.headers.accept then |
| 160 send_type = decide_type(response.headers.accept); | 166 send_type = decide_type(response.headers.accept); |
| 161 module:log("debug", "Set 'rest_callback_content_type' = %q based on Accept header", send_type); | 167 module:log("debug", "Set 'rest_callback_content_type' = %q based on Accept header", send_type); |
| 162 end | 168 end |
| 163 end); | 169 end); |
| 214 ["Content-Type"] = send_type, | 220 ["Content-Type"] = send_type, |
| 215 ["Content-Language"] = stanza.attr["xml:lang"], | 221 ["Content-Language"] = stanza.attr["xml:lang"], |
| 216 Accept = table.concat(supported_types, ", "); | 222 Accept = table.concat(supported_types, ", "); |
| 217 }, | 223 }, |
| 218 }, function (body, code, response) | 224 }, function (body, code, response) |
| 225 if code == 0 then | |
| 226 return module:log_status("error", "Could not connect to callback URL %q: %s", rest_url, body); | |
| 227 else | |
| 228 module:set_status("info", "Connected"); | |
| 229 end | |
| 219 if (code == 202 or code == 204) and not reply_needed then | 230 if (code == 202 or code == 204) and not reply_needed then |
| 220 -- Delivered, no reply | 231 -- Delivered, no reply |
| 221 return; | 232 return; |
| 222 end | 233 end |
| 223 local reply; | 234 local reply; |