i18n-node-server
Version:
NodeJS http server to store your internationalized phrases
110 lines • 3.98 kB
JavaScript
;
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