Create services with validateParoles and translateLyrics

This commit is contained in:
Cédric FAMIBELLE-PRONZOLA
2022-06-04 01:15:42 +04:00
parent 4f5aab0ace
commit 62a3193963
+28
View File
@@ -3,6 +3,7 @@ const qs = require('qs')
const axios = require('axios') const axios = require('axios')
const { createCoreService } = require('@strapi/strapi').factories; const { createCoreService } = require('@strapi/strapi').factories;
const { ValidationError } = require("@strapi/utils").errors
class Translator { class Translator {
constructor() { constructor() {
@@ -37,5 +38,32 @@ module.exports = createCoreService('api::parole.parole', ({strapi}) => ({
const translator = new Translator() const translator = new Translator()
const data = await translator.get(origin, target, text) const data = await translator.get(origin, target, text)
return data.translations[0].text return data.translations[0].text
},
async translateLyrics(parolesFR) {
const anglais = await this.translate('FR', 'EN', parolesFR)
const espagnol = await this.translate('FR', 'ES', parolesFR)
const allemand = await this.translate('FR', 'DE', parolesFR)
const italien = await this.translate('FR', 'IT', parolesFR)
return {
francais: parolesFR,
anglais: anglais + '\n\n (Translated by DeepL)',
espagnol: espagnol + '\n\n (Traducido por DeepL)',
allemand: allemand + '\n\n (Übersetzt von DeepL)',
italien: italien + '\n\n (Tradotto da DeepL)'
}
},
validateParoles(titre, transcription) {
if (!titre || titre.trim().length === 0) {
throw new ValidationError('Champ obligatoire. Veuillez choisir un titre.');
}
if (!transcription || transcription.trim().length === 0) {
throw new ValidationError('Champ obligatoire. Veuillez renseigner la transcription.')
}
if (transcription.trim().length < 10) {
throw new ValidationError('La transcription doit contenir au moins 10 caractères.')
}
} }
})); }));