Revue du message envoyé aux abonnés quand plus de nouveaux contenus et suppression de certains logs.

This commit is contained in:
Fabrice PENHOËT 2020-11-30 11:24:52 +01:00
parent 12bf9505f7
commit a6b80cb2fc
2 changed files with 5 additions and 8 deletions

View File

@ -257,7 +257,6 @@ exports.addNewQuestionnaireUsers = async(req, res, next) =>
// Il y a déjà eu au moins un envoi et le dernier envoi était un des éléments d'un quiz groupé :
if(lastSended.length !==0 && lastSended[0].dateSended == subscriptionsOk[i].lastProcessingAt)
{
console.log(subscriptionsOk[i].email+" a reçu un article lors du dernier envoi le "+subscriptionsOk[i].lastProcessingAt);
const lastSendedGroup = await groupCtrl.searchGroupById(lastSended[0].GroupId);
if(!tool.isEmpty(lastSendedGroup))
{
@ -265,7 +264,6 @@ exports.addNewQuestionnaireUsers = async(req, res, next) =>
// Si le dernier élément envoyé était le dernier de son groupe, on envoie le lien du quiz reprenant toutes les questions du groupe :
if(!tool.isEmpty(lastSendedGroupNbElements) && lastSendedGroup.Questionnaires[(lastSendedGroupNbElements-1)].id == lastSended[0].QuestionnaireId)
{
console.log(subscriptionsOk[i].email+" va recevoir le quiz du groupe.")
// Il faut que le quiz soi publié... Sinon on va envoyer un ancien quiz en attendant (cf + bas)
if(lastSendedGroup.Group.isPublishable)
elementToSend = lastSendedGroup.Group;
@ -273,7 +271,6 @@ exports.addNewQuestionnaireUsers = async(req, res, next) =>
// Sinon l'élément suivant du groupe :
else
{
console.log(subscriptionsOk[i].email+" va recevoir le nouvel article du même groupe.");
for(let j in lastSendedGroup.Questionnaires)
if(lastSendedGroup.Questionnaires[j].id == lastSended[0].QuestionnaireId)
elementToSend = await questionnaireCtrl.searchQuestionnaireById(lastSendedGroup.Questionnaires[(parseInt(j)+1)].id);
@ -282,7 +279,6 @@ exports.addNewQuestionnaireUsers = async(req, res, next) =>
}
else
{
console.log(subscriptionsOk[i].email+" devrait recevoir le premier article du groupe suivant, si il existe.");
// Soit il s'agit du premier envoi d'un abonnement, soit le dernier envoi était le quiz d'un groupe.
// Dans ces deux cas, on va envoyer le premier élément non encore envoyé à cet abonné (le groupe peut ne pas être lui-même encore publié) :
const getElementToSend = await db.sequelize.query("SELECT `Questionnaires`.`id` FROM `Questionnaires` INNER JOIN `Groups` ON `Questionnaires`.`GroupId`=`Groups`.`id` WHERE `Questionnaires`.`isPublished`=1 AND `Groups`.`language`='"+subscriptionsOk[i].language+"' AND `Questionnaires`.`id` NOT IN (SELECT `QuestionnaireId` FROM `QuestionnaireAccesses` where `UserId`="+subscriptionsOk[i].UserId+") ORDER BY `Groups`.`publishingAt`,`rankInGroup` ASC", { type: QueryTypes.SELECT });
@ -291,6 +287,8 @@ exports.addNewQuestionnaireUsers = async(req, res, next) =>
}
// Token du lien de désinscription aux envois :
const token=jwt.sign({ userId: subscriptionsOk[i].UserId }, config.tokenPrivateKey, { expiresIn: config.tokenUnsubscribeLinkTimeInDays });
elementToSend="";
if(!tool.isEmpty(elementToSend))
{
if(elementToSend.Questionnaire !== undefined)// = Il s'agit de l'élément d'un group
@ -308,7 +306,6 @@ exports.addNewQuestionnaireUsers = async(req, res, next) =>
mailTitle: elementToSend.Questionnaire.title,
mailHeaderLinkUrl: mapMail.UNSUBSCRIBE_URL,
mailHeaderLinkTxt: txt.mailStopMailLinkTxt,
//mailMainContent: elementToSend.Questionnaire.introduction,
mailMainContent: tool.shortenIfLongerThan(striptags(elementToSend.Questionnaire.introduction.replace("<br>", " ").replace("</p>", " ").replace("</h4>", " ")), 500),
linksCTA: [{ url:mapMail.QUESTIONNAIRE_URL, txt:txtGeneral.btnShowOnWebSite.replace("#SITE_NAME", config.siteName) }],
mailRecipientAddress: subscriptionsOk[i].email
@ -342,7 +339,7 @@ exports.addNewQuestionnaireUsers = async(req, res, next) =>
else
{
// L'utilisateur a déjà reçu tous les élements publiés. Dans ce cas, on tire au hasard un quiz groupé pour le lui envoyer une nouvelle fois.
const getElementToSend = await db.sequelize.query("SELECT `id`, `title`, `slug`, `introduction` FROM `Groups` WHERE `publishingAt` < NOW() AND `language`='"+subscriptionsOk[i].language+"' ORDER BY RAND() LIMIT 1", { type: QueryTypes.SELECT });
const getElementToSend = await db.sequelize.query("SELECT `id`, `title`, `slug` FROM `Groups` WHERE `publishingAt` < NOW() AND `language`='"+subscriptionsOk[i].language+"' ORDER BY RAND() LIMIT 1", { type: QueryTypes.SELECT });
const mapMail =
{
USER_NAME: subscriptionsOk[i].name,
@ -356,7 +353,7 @@ exports.addNewQuestionnaireUsers = async(req, res, next) =>
mailTitle: getElementToSend[0].title,
mailHeaderLinkUrl: mapMail.UNSUBSCRIBE_URL,
mailHeaderLinkTxt: txt.mailStopMailLinkTxt,
mailMainContent: "<h4>"+txtQuestionnaireAccess.questionnaireRetryInfo+"</h4>"+getElementToSend[0].introduction,
mailMainContent: "<h4>"+txtQuestionnaireAccess.questionnaireRetryInfo+"</h4>",
linksCTA: [{ url: mapMail.QUESTIONNAIRE_URL, txt:txtQuestionnaire.btnShowQuestionnaire }],
mailRecipientAddress: subscriptionsOk[i].email
}

View File

@ -3,7 +3,7 @@ module.exports =
lastQuestionnairesForUser: "Vos dernières lectures :",
notFound : "Les informations d'un questionnaire attribué à un abonné n'ont pas été trouvées : ",
noQuestionnaireAccess: "Aucun article ne vous a encore été envoyé par e-mail. Sans doute, venez-vous de créer votre compte. En attendant d'en recevoir, vous pouvez mieux découvrir le site WikiLerni <a href=\"/a-propos.html\">en lisant la page à propos</a> ou encore commencer à parcourir librement son contenu à l'aide du moteur de recherche ci-dessus.",
questionnaireRetryInfo : "<b>Vous avez déjà reçu tous les quizs publiés à ce jour ! En attendant la publication de nouveaux quizs, vous pouvez peut-être réessayer le suivant ?</b>",
questionnaireRetryInfo : "Vous avez déjà reçu tous les articles et quizs publiés à ce jour. En attendant la publication de nouveaux contenus, vous pouvez peut-être réessayer de répondre au quiz suivant ?",
questionnaireRetryInfoTxt : "Bonjour USER_NAME,\n\nVous avez déjà reçu tous les quizs publiés à ce jour ! En attendant la publication de nouveaux quizs, vous pouvez peut-être réessayer le suivant ?\n\nQUESTIONNAIRE_URL\n\nBonne lecture !\n\nStopper les envois ?\nUNSUBSCRIBE_URL",
searchIsNotLongEnough : "Merci de fournir un mot-clés d'au moins deux caractères pour votre recherche."
};