From 4f67677c6283147392f4007ba6a63360bbd75395 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20FAMIBELLE-PRONZOLA?= Date: Fri, 20 May 2022 00:05:34 +0400 Subject: [PATCH] Create Translator service --- src/api/parole/services/parole.js | 38 ++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/src/api/parole/services/parole.js b/src/api/parole/services/parole.js index b9d16f4..3d6f3c5 100644 --- a/src/api/parole/services/parole.js +++ b/src/api/parole/services/parole.js @@ -1,5 +1,41 @@ 'use strict'; +const qs = require('qs') +const axios = require('axios') const { createCoreService } = require('@strapi/strapi').factories; -module.exports = createCoreService('api::parole.parole'); +class Translator { + constructor() { + this.deeplApi = process.env.DEEPL_URL || 'api-free.deepl.com' + this.deeplKey = process.env.DEEPL_KEY + this.urlRequest = `https://${this.deeplApi}/v2/translate` + } + + async get(origin, target, text) { + try { + const data = { + auth_key: this.deeplKey, + source_lang: origin, + target_lang: target, + text + } + const result = await axios.post(this.urlRequest, qs.stringify(data), { + headers: { + 'content-type': 'application/x-www-form-urlencoded' + } + }) + + return result.data + } catch (error) { + console.log('error', error) + } + } +} + +module.exports = createCoreService('api::parole.parole', ({strapi}) => ({ + async translate(origin, target, text) { + const translator = new Translator() + const data = await translator.get(origin, target, text) + return data.translations[0].text + } +}));