intlayer-editor
Version:
Integrate the Intlayer visual editor into your Intlayer projects, enabling CMS-like content management with multilingual support.
110 lines (108 loc) • 3.38 kB
JavaScript
import { formatResponse } from "../utils/responseData.mjs";
import { getConfiguration } from "@intlayer/config";
import { writeContentDeclaration as writeContentDeclaration$1 } from "@intlayer/chokidar";
import { getUnmergedDictionaries } from "@intlayer/unmerged-dictionaries-entry";
import { t } from "express-intlayer";
//#region src/controllers/dictionary.controller.ts
/**
* Get the Intlayer configuration
*/
const getDictionaries = async (_req, res, _next) => {
try {
const formattedResponse = formatResponse({ data: getUnmergedDictionaries() });
res.json(formattedResponse);
return;
} catch (err) {
const errorMessage = err ?? {
message: "Internal Server Error",
status: 500
};
const formattedErrorResponse = formatResponse({
error: {
message: errorMessage.message ?? "Internal Server Error",
code: "INTERNAL_SERVER_ERROR",
title: "Internal Server Error"
},
status: errorMessage.status ?? 500
});
res.json(formattedErrorResponse);
return;
}
};
/**
* Adds a new dictionary to the database.
*/
const writeContentDeclaration = async (req, res, _next) => {
try {
const dictionaryData = req.body.dictionary;
const result = await writeContentDeclaration$1(dictionaryData, getConfiguration());
let description = "";
switch (result.status) {
case "created":
description = t({
en: "Content declaration created successfully",
fr: "Déclaration de contenu créée avec succès",
es: "Declaración de contenido creada con éxito"
});
break;
case "updated":
description = t({
en: "Content declaration updated successfully",
fr: "Déclaration de contenu mise à jour avec succès",
es: "Declaración de contenido actualizada con éxito"
});
break;
case "reimported in JSON":
description = t({
en: "Content declaration reimported in JSON successfully",
fr: "Déclaration de contenu réimportée en JSON avec succès",
es: "Declaración de contenido reimportada en JSON con éxito"
});
break;
case "new content file":
description = t({
en: "Content declaration new content file successfully",
fr: "Déclaration de contenu réimportée dans un nouveau emplacement avec succès",
es: "Declaración de contenido reimportada en un nuevo lugar con éxito"
});
break;
default:
description = t({
en: "Content declaration written successfully",
fr: "Déclaration de contenu écrite avec succès",
es: "Declaración de contenido escrita con éxito"
});
break;
}
const formattedResponse = formatResponse({
data: result,
message: t({
en: "Content declaration written",
fr: "Déclaration de contenu écrite",
es: "Declaración de contenido escrita"
}),
description
});
res.json(formattedResponse);
return;
} catch (err) {
const errorMessage = err ?? {
message: "Internal Server Error",
status: 500
};
console.error(errorMessage);
const formattedErrorResponse = formatResponse({
error: {
message: errorMessage.message ?? "Internal Server Error",
code: "INTERNAL_SERVER_ERROR",
title: "Internal Server Error"
},
status: errorMessage.status ?? 500
});
res.json(formattedErrorResponse);
return;
}
};
//#endregion
export { getDictionaries, writeContentDeclaration };
//# sourceMappingURL=dictionary.controller.mjs.map