UNPKG

i18n-node-server

Version:

NodeJS http server to store your internationalized phrases

110 lines 3.98 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.app = exports.listen = exports.setupRoutes = void 0; const express_1 = __importDefault(require("express")); const fs_service_1 = require("./fs-service/fs-service"); const args_1 = require("./cli/args"); const country_codes_1 = require("./country-codes/country-codes"); const valid_ident_1 = require("./fs-service/utils/valid-ident"); const errors_1 = require("./fs-service/errors"); const app = (0, express_1.default)(); exports.app = app; app.use(express_1.default.json()); app.disable("x-powered-by"); const fsService = new fs_service_1.FsService(args_1.cliArgs.data); function setupRoutes() { app.get("/ping", (req, res) => { res.send("pong"); }); app.get("/api/named", (req, res) => { res.json(country_codes_1.namedCC); }); app.get("/api/cc", (req, res) => { res.json(country_codes_1.countryCodes); }); app.get("/api/all", (req, res) => { const filterCountryCodesStr = req.query.filter || ""; const filterCC = filterCountryCodesStr.split(",").filter(Boolean); const allRecords = fsService.getAllRecords(filterCC); res.json(allRecords); }); app.get("/api/record/:ident", (req, res) => { const { ident } = req.params; const countryCode = req.query.countryCode; const filterCountryCodesStr = req.query.filter || ""; if ((0, valid_ident_1.validateIdent)(ident)) { const filterCC = filterCountryCodesStr.split(",").filter(Boolean); const current = fsService.getRecordsByIdent(ident, filterCC); if (current instanceof Error) { res.status(400).send(current.message); } else { if (countryCode && current.hasOwnProperty(countryCode)) { res.send(current[countryCode]); } else { res.json(current); } } } else { res.status(400).send(errors_1.IDENT_NOT_VALID.message); } }); app.put("/api/put-new", (req, res) => { const body = req.body; if (body && body.ident && body.records) { const error = fsService.writeRecords(body.ident, body.records); if (error) { res.status(400).send(error.message); } else { res.sendStatus(200); } } else { res.sendStatus(400); } }); app.post("/api/update-records", (req, res) => { const body = req.body; if (body && body.ident && body.records) { const error = fsService.updateRecords(body.ident, body.records); if (error) { res.status(400).send(error.message); } else { res.sendStatus(200); } } else { res.sendStatus(400); } }); app.post("/api/update-record", (req, res) => { const body = req.body; if (body && body.ident && body.countryCode && body.value != null) { const error = fsService.updateRecord(body.ident, body.countryCode, body.value); if (error) { res.status(400).send(error.message); } else { res.sendStatus(200); } } else { res.sendStatus(400); } }); } exports.setupRoutes = setupRoutes; function listen() { app.listen(args_1.cliArgs.port, () => { console.log("i18n-node-server listen at port", args_1.cliArgs.port); }); } exports.listen = listen; //# sourceMappingURL=server.js.map