123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- const http = require("http");
- const convertFileFormat = require("../src/fileFormatConverter");
- const httpServer = require("../src/httpServer");
- const parseURL = require("../src/parseURL");
- const languages = require("../src/languages");
- const jsl = require("svjsl");
- const settings = require("../settings");
- const translate = require("../src/translate");
- jsl.unused(http);
- const meta = {
- "name": "LangCodes",
- "desc": "Returns the language code of the specified language",
- "usage": {
- "method": "GET",
- "url": `${settings.info.docsURL}/langcode/{LANGUAGE}`,
- "supportedParams": [
- "format",
- "lang"
- ]
- }
- };
- /**
- * Calls this endpoint
- * @param {http.IncomingMessage} req The HTTP server request
- * @param {http.ServerResponse} res The HTTP server response
- * @param {Array<String>} url URL path array gotten from the URL parser module
- * @param {Object} params URL query params gotten from the URL parser module
- * @param {String} format The file format to respond with
- */
- const call = (req, res, url, params, format) => {
- jsl.unused([req, params]);
- let statusCode = 200;
- let lang = (params && params["lang"]) ? params["lang"] : settings.languages.defaultLanguage;
- if(url[1] == undefined)
- {
- statusCode = 400;
- return httpServer.pipeString(res, convertFileFormat.auto(format, {
- "error": true,
- "message": translate(lang, "noLangCodeSpecified")
- }, lang), parseURL.getMimeTypeFromFileFormatString(format), statusCode);
- }
- let defaultValDisabled = (params && params.noDefault && params.noDefault == true);
- let responseText = "";
- let langCode = null;
- // if(!defaultValDisabled)
- // langCode = settings.languages.defaultLanguage;
- let language = url[1].toString().toLowerCase();
- let ltc = languages.languageToCode(language);
- langCode = (ltc === false ? (defaultValDisabled ? null : settings.languages.defaultLanguage) : ltc);
- if(langCode == null || ltc === false)
- {
- // error
- statusCode = 400;
- responseText = convertFileFormat.auto(format, {
- "error": true,
- "message": `The provided language "${decodeURIComponent(language)}" could not be resolved.`
- }, lang);
- }
- else
- {
- responseText = convertFileFormat.auto(format, {
- "error": false,
- "code": langCode
- }, lang);
- }
- httpServer.pipeString(res, responseText, parseURL.getMimeTypeFromFileFormatString(format), statusCode);
- };
- module.exports = { meta, call };
|