ping.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. const http = require("http");
  2. const convertFileFormat = require("../src/fileFormatConverter");
  3. const httpServer = require("../src/httpServer");
  4. const parseURL = require("../src/parseURL");
  5. const tr = require("../src/translate");
  6. const jsl = require("svjsl");
  7. const settings = require("../settings");
  8. jsl.unused(http);
  9. const meta = {
  10. "name": "Ping",
  11. "desc": `Can be used to check if ${settings.info.name} is online`,
  12. "usage": {
  13. "method": "GET",
  14. "url": `${settings.info.docsURL}/ping`,
  15. "supportedParams": [
  16. "format",
  17. "lang"
  18. ]
  19. }
  20. };
  21. /**
  22. * Calls this endpoint
  23. * @param {http.IncomingMessage} req The HTTP server request
  24. * @param {http.ServerResponse} res The HTTP server response
  25. * @param {Array<String>} url URL path array gotten from the URL parser module
  26. * @param {Object} params URL query params gotten from the URL parser module
  27. * @param {String} format The file format to respond with
  28. */
  29. const call = (req, res, url, params, format) => {
  30. jsl.unused([req, url, params]);
  31. let lang = (params && params["lang"]) ? params["lang"] : settings.languages.defaultLanguage;
  32. let responseText = convertFileFormat.auto(format, {
  33. "error": false,
  34. "ping": tr(lang, "pingPong"),
  35. "timestamp": new Date().getTime()
  36. }, lang);
  37. httpServer.pipeString(res, responseText, parseURL.getMimeTypeFromFileFormatString(format));
  38. };
  39. module.exports = { meta, call };