@qso-soft/shared
Version:
Shared library for QSO-soft
38 lines • 1.39 kB
JavaScript
import { sep } from 'path';
import { MAILS_FOLDER, NO_MAIL_TO_USE } from '../../constants';
import { getRandomItemFromArray } from '../utils';
import { convertAndWriteToJSON, convertToCsvAndWrite } from './csv-converters';
const getMails = async (projectName) => {
const inputPath = `${MAILS_FOLDER}${sep}${projectName}-mails.csv`;
return (await convertAndWriteToJSON({
inputPath,
}));
};
export const getCurrentMailToUse = async (projectName) => {
const mails = await getMails(projectName);
const notUsedMails = mails.filter(({ used }) => !used);
if (!notUsedMails.length) {
throw new Error(NO_MAIL_TO_USE);
}
return getRandomItemFromArray(notUsedMails);
};
export const updateUsedMail = async ({ projectName, currentMailToUse, logger, walletId }) => {
const fileName = `${projectName}-mails.csv`;
const mails = await getMails(projectName);
const updatedMails = mails.map(({ mail, used }) => {
const isCurrentMail = mail === currentMailToUse.mail;
if (isCurrentMail) {
logger.info(`Wallet ${walletId} used ${currentMailToUse.mail} mail`);
}
return {
mail,
used: isCurrentMail ? true : used,
};
});
convertToCsvAndWrite({
data: updatedMails,
fileName,
outputPath: MAILS_FOLDER,
});
};
//# sourceMappingURL=mails.js.map