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.56 kB
JavaScript
import { formatResponse } from "../utils/responseData.mjs";
import { getConfiguration } from "@intlayer/config/node";
import { join } from "node:path";
import { clearModuleCache } from "@intlayer/config/utils";
import { writeContentDeclaration as writeContentDeclaration$1 } from "@intlayer/engine/build";
import { getUnmergedDictionaries } from "@intlayer/unmerged-dictionaries-entry";
import { t } from "fastify-intlayer";
//#region src/controllers/dictionary.controller.ts
/**
* Get the Intlayer configuration
*/
const getDictionaries = async (_req, res) => {
try {
const formattedResponse = formatResponse({ data: getUnmergedDictionaries() });
return res.send(formattedResponse);
} 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
});
return res.send(formattedErrorResponse);
}
};
/**
* Adds a new dictionary to the database.
*/
const writeContentDeclaration = async (req, res) => {
try {
const dictionaryData = req.body.dictionary;
const config = getConfiguration();
const result = await writeContentDeclaration$1(dictionaryData, config);
clearModuleCache(join(config.system.mainDir, `unmerged_dictionaries.cjs`));
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
});
return res.send(formattedResponse);
} 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
});
return res.send(formattedErrorResponse);
}
};
//#endregion
export { getDictionaries, writeContentDeclaration };
//# sourceMappingURL=dictionary.controller.mjs.map