comparison mod_rest/mod_rest.lua @ 4247:1f93fa24611d

mod_rest: Use promise based HTTP client API Doesn't really simplify anything much.
author Kim Alvefur <zash@zash.se>
date Sun, 15 Nov 2020 15:33:56 +0100
parents 7bf3bf81c9ef
children 64aa1d9d70ac
comparison
equal deleted inserted replaced
4246:53ae1df31950 4247:1f93fa24611d
320 headers = { 320 headers = {
321 ["Content-Type"] = send_type, 321 ["Content-Type"] = send_type,
322 ["Content-Language"] = stanza.attr["xml:lang"], 322 ["Content-Language"] = stanza.attr["xml:lang"],
323 Accept = table.concat(supported_inputs, ", "); 323 Accept = table.concat(supported_inputs, ", ");
324 }, 324 },
325 }, function (body, code, response) 325 }):next(function (response)
326 if code == 0 then 326 module:set_status("info", "Connected");
327 module:log_status("error", "Could not connect to callback URL %q: %s", rest_url, body);
328 origin.send(st.error_reply(stanza, "wait", "recipient-unavailable", body));
329 return;
330 else
331 module:set_status("info", "Connected");
332 end
333 local reply; 327 local reply;
334 328
329 local code, body = response.code, response.body;
335 if code == 202 or code == 204 then 330 if code == 202 or code == 204 then
336 if not reply_needed then 331 if not reply_needed then
337 -- Delivered, no reply 332 -- Delivered, no reply
338 return; 333 return;
339 end 334 end
391 end 386 end
392 387
393 module:log("debug", "Received[rest]: %s", reply:top_tag()); 388 module:log("debug", "Received[rest]: %s", reply:top_tag());
394 389
395 origin.send(reply); 390 origin.send(reply);
391 end,
392 function (err)
393 module:log_status("error", "Could not connect to callback URL %q: %s", rest_url, err);
394 origin.send(st.error_reply(stanza, "wait", "recipient-unavailable", err.text));
396 end); 395 end);
397 396
398 return true; 397 return true;
399 end 398 end
400 399