Adapt lifecycles parole with translation

This commit is contained in:
Cédric FAMIBELLE-PRONZOLA
2022-05-14 23:53:48 +04:00
parent 626063d65a
commit bbfe9fb411
@@ -76,14 +76,14 @@ const jwennUserAdminEpiId = async userAdminId => {
return userAdmin
}
const translateTeks = async teksFR => {
const english = await strapi.services.translator.translate('FR', 'EN', teksFR)
const espagnol = await strapi.services.translator.translate('FR', 'ES', teksFR)
const deutsch = await strapi.services.translator.translate('FR', 'DE', teksFR)
const italiano = await strapi.services.translator.translate('FR', 'IT', teksFR)
const translateLyrics = async parolesFR => {
const english = await strapi.services.translator.translate('FR', 'EN', parolesFR)
const espagnol = await strapi.services.translator.translate('FR', 'ES', parolesFR)
const deutsch = await strapi.services.translator.translate('FR', 'DE', parolesFR)
const italiano = await strapi.services.translator.translate('FR', 'IT', parolesFR)
return {
francais: teksFR,
francais: parolesFR,
english: english + '\n\n (Translated by DeepL)',
espagnol: espagnol + '\n\n (Traducido por DeepL)',
deutsch: deutsch + '\n\n (Übersetzt von DeepL)',
@@ -91,16 +91,16 @@ const translateTeks = async teksFR => {
}
}
const validateParoles = (tit, transkripsyon) => {
if (!tit || tit.trim().length === 0) {
const validateParoles = (titre, transcription) => {
if (!titre || titre.trim().length === 0) {
throw new ValidationError('Champ obligatoire. Veuillez choisir un titre.');
}
if (!transkripsyon || transkripsyon.trim().length === 0) {
if (!transcription || transcription.trim().length === 0) {
throw new ValidationError('Champ obligatoire. Veuillez renseigner la transcription.')
}
if (transkripsyon.trim().length < 10) {
if (transcription.trim().length < 10) {
throw new ValidationError('La transcription doit contenir au moins 10 caractères.')
}
}
@@ -108,7 +108,7 @@ const validateParoles = (tit, transkripsyon) => {
module.exports = {
beforeCreate: async event => {
let {data} = event.params
validateParoles(data.tit, data.transkripsyon)
validateParoles(data.titre, data.transcription)
const user = await jwennUserEpiId(data?.user?.id)
const userAdmin = await jwennUserAdminEpiId(data?.createdBy)
@@ -117,9 +117,9 @@ module.exports = {
data.userAdmin = userAdmin
}
if (data.tit && !data.forceSlug) {
if (data.titre && !data.forceSlug) {
const artiste = await jwennAwtisEpiId(data.artistes)
data.slug = getSlug(artiste, data.tit)
data.slug = getSlug(artiste, data.titre)
}
const getSlugExistance = await isSlugExists(data.slug)
@@ -128,22 +128,22 @@ module.exports = {
throw new ValidationError('Un morceau du même artiste existe déjà.')
}
if (user && user.canAutoTranslate && data.tradiksyonOtomatik && data.tradiksyon.francais && (!data.tradiksyon.english || !data.tradiksyon.espagnol || !data.tradiksyon.deutsch || !data.tradiksyon.italiano)) {
const translate = await translateTeks(data.tradiksyon.francais)
data.tradiksyon = translate
if (user && user.canAutoTranslate && data.traductionAuto && data.titre.francais && (!data.transcription.english || !data.transcription.espagnol || !data.transcription.deutsch || !data.transcription.italiano)) {
const translated = await translateLyrics(data.traduction.francais)
data.traductions = translated
}
},
beforeUpdate: async event => {
let {data} = event.params
validateParoles(data.tit, data.transkripsyon)
validateParoles(data.titre, data.transcription)
const {where} = event.params
if(!data.publishedAt) {
if (data.tit && !data.forceSlug) {
const artiste = await jwennAwtisEpiId(data.artistes)
data.slug = getSlug(artiste, data.tit)
data.slug = getSlug(artiste, data.titre)
}
}
@@ -163,8 +163,8 @@ module.exports = {
strapi.plugins['email'].services.email.send({
from: process.env.SMTP_FROM,
to: previousData.user.email,
subject: `Publication de "${previousData.tit}"`,
html: `<p>Le titre que vous avez soumis, <strong>"${previousData.tit}"</strong> a été publié sur le site.</p>
subject: `Publication de "${previousData.titre}"`,
html: `<p>Le titre que vous avez soumis, <strong>"${previousData.titre}"</strong> a été publié sur le site.</p>
<p>Vous pouvez le trouver à l'adresse <a href="${process.env.WEBSITE_URL}/paroles/${previousData.slug}">${process.env.WEBSITE_URL}/paroles/${previousData.slug}</a>.</p><p>Merci pour votre contribution ❤️</p>`
})
}
@@ -173,8 +173,8 @@ module.exports = {
strapi.plugins['email'].services.email.send({
from: process.env.SMTP_FROM,
to: previousData.userAdmin.email,
subject: `Publication de "${previousData.tit}"`,
html: `<p>Le titre que vous avez soumis, <strong>"${previousData.tit}"</strong> a été publié sur le site.</p>
subject: `Publication de "${previousData.titre}"`,
html: `<p>Le titre que vous avez soumis, <strong>"${previousData.titre}"</strong> a été publié sur le site.</p>
<p>Vous pouvez le trouver à l'adresse <a href="${process.env.WEBSITE_URL}/paroles/${previousData.slug}">${process.env.WEBSITE_URL}/paroles/${previousData.slug}</a>.</p><p>Merci pour votre contribution ❤️</p>`
})
}
@@ -192,8 +192,8 @@ module.exports = {
strapi.plugins['email'].services.email.send({
from: process.env.SMTP_FROM,
to: process.env.SMTP_SEND_TO,
subject: `Nouveau texte de ${user.username} : "${data.tit}" (site)`,
html: `Le titre <strong>"${data.tit}"</strong> a été soumis depuis le site.`
subject: `Nouveau texte de ${user.username} : "${data.titre}" (site)`,
html: `Le titre <strong>"${data.titre}"</strong> a été soumis depuis le site.`
})
}
@@ -201,8 +201,8 @@ module.exports = {
strapi.plugins['email'].services.email.send({
from: process.env.SMTP_FROM,
to: process.env.SMTP_SEND_TO,
subject: `Nouveau texte de ${userAdmin.firstname} : "${data.tit}" (site)`,
html: `Le titre <strong>"${data.tit}"</strong> a été soumis depuis le site.`
subject: `Nouveau texte de ${userAdmin.firstname} : "${data.titre}" (site)`,
html: `Le titre <strong>"${data.titre}"</strong> a été soumis depuis le site.`
})
}
}