Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

HttpConfigFetch.js 1.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /* global $, $iq, config, interfaceConfig */
  2. var configUtil = require('./Util');
  3. var HttpConfig = {
  4. /**
  5. * Sends HTTP POST request to specified <tt>endpoint</tt>. In request
  6. * the name of the room is included in JSON format:
  7. * {
  8. * "rooomName": "someroom12345"
  9. * }
  10. * @param endpoint the name of HTTP endpoint to which HTTP POST request will
  11. * be sent.
  12. * @param roomName the name of the conference room for which config will be
  13. * requested.
  14. * @param complete
  15. */
  16. obtainConfig: function (endpoint, roomName, complete) {
  17. console.info(
  18. "Send config request to " + endpoint + " for room: " + roomName);
  19. var request = new XMLHttpRequest();
  20. var error = null;
  21. request.onreadystatechange = function (aEvt) {
  22. if (request.readyState == 4) {
  23. var status = request.status;
  24. if (status === 200) {
  25. try {
  26. var data = JSON.parse(request.responseText);
  27. configUtil.overrideConfigJSON(
  28. config, interfaceConfig, data);
  29. complete(true);
  30. return;
  31. } catch (exception) {
  32. console.error("Parse config error: ", exception);
  33. error = exception;
  34. }
  35. } else {
  36. console.error("Get config error: ", request, status);
  37. error = "Get config response status: " + status;
  38. }
  39. complete(false, error);
  40. }
  41. };
  42. request.open("POST", endpoint, true);
  43. request.setRequestHeader(
  44. "Content-Type", "application/json;charset=UTF-8");
  45. request.send({ "roomName": roomName });
  46. }
  47. };
  48. module.exports = HttpConfig;