Skip to content

Commit

Permalink
Isolate cert generator process
Browse files Browse the repository at this point in the history
  • Loading branch information
roman-nebel committed Jul 26, 2023
1 parent 1de646d commit e0e0ea3
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 2 deletions.
17 changes: 15 additions & 2 deletions src/modules/apiRequests/getDiploma/getDiploma.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,28 @@ const { log } = require("@logger");
const { getDBRequest } = require("../../dbRequests/dbRequests");
const { generateSkills } = require("./generateSkills");
const generateCertId = require("../../../processes/prepareData/prepareCertificateData/generateCertId");
const createCert = require("../../../utils/certGenerator");
const { generateMessage } = require("../../../utils/messageGenerator");
const { addUserAction } = require("../../../modules/statistics/addUserAction");
const provideData = require("./provideData");
const CyrillicToTranslit = require("cyrillic-to-translit-js");
const { fork } = require("child_process");

const cyrillicToTranslit = new CyrillicToTranslit();

async function generateCert(fullInfo) {
return new Promise((resolve, reject) => {
const child = fork(__dirname + "/../../../utils/certGenerator");
child.on("message", (fileId) => {
log.info("New certificate generated:", fileId);
return resolve(fileId);
});
child.send(fullInfo);
});
}

async function getDiploma({ req, res }) {
const certGen = fork(__dirname + "/../../../utils/certGenerator");

const userId = req?.userId;
const { moduleId, lang, isColor, isMascot, isProgress, isPublic } =
req?.query;
Expand Down Expand Up @@ -139,7 +152,7 @@ async function getDiploma({ req, res }) {

const fullInfo = provideData(info, params);

const fileId = await createCert(fullInfo);
const fileId = await generateCert(fullInfo);

Object.assign(moduleData, params);

Expand Down
5 changes: 5 additions & 0 deletions src/utils/certGenerator.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,9 @@ async function createCert(data, quality = "small") {
return fileId;
}

process.on("message", async (msg) => {
const cert = await createCert(msg);
process.send(cert);
});

module.exports = createCert;

0 comments on commit e0e0ea3

Please sign in to comment.