diff --git a/README.md b/README.md index 603aa18..1bdf4d8 100644 --- a/README.md +++ b/README.md @@ -17,14 +17,14 @@ Add a `.gitporc` with the followings: { "API_TOKEN": "", "HOOKS": { - "": { + "": [{ "IMPORT": "", "SYNC": "", "EXPORT": { "fr": "", "en": "" } - } + }] } } ``` diff --git a/config.js b/config.js index e963f5a..8ce2e6e 100644 --- a/config.js +++ b/config.js @@ -1,13 +1,15 @@ module.exports = require('rc')('gitpo', { API_TOKEN: '', HOOKS: { - '': { - IMPORT: '', // only one language needed as we import TERMS only - SYNC: '', // only one language needed as we import TERMS only - EXPORT: { - fr: '', - en: '', + '': [ + { + IMPORT: '', // only one language needed as we import TERMS only + SYNC: '', // only one language needed as we import TERMS only + EXPORT: { + fr: '', + en: '', + }, }, - }, + ], }, }) diff --git a/lib/webhooks/importNewTerms.js b/lib/webhooks/importNewTerms.js index bb8b5c1..9dc906e 100644 --- a/lib/webhooks/importNewTerms.js +++ b/lib/webhooks/importNewTerms.js @@ -1,3 +1,4 @@ const rp = require('request-promise') -module.exports = ({ HOOKS }) => async (projectId) => rp({ method: 'GET', url: HOOKS[projectId].IMPORT }) +module.exports = ({ HOOKS }) => async (projectId) => + Promise.all(HOOKS[projectId].map(({ IMPORT }) => rp({ method: 'GET', url: IMPORT }))) diff --git a/lib/webhooks/synchronizeTerms.js b/lib/webhooks/synchronizeTerms.js index 5a8abd7..5202936 100644 --- a/lib/webhooks/synchronizeTerms.js +++ b/lib/webhooks/synchronizeTerms.js @@ -1,3 +1,4 @@ const rp = require('request-promise') -module.exports = ({ HOOKS }) => async (projectId) => rp({ method: 'GET', url: HOOKS[projectId].SYNC }) +module.exports = ({ HOOKS }) => async (projectId) => + Promise.all(HOOKS[projectId].map(({ SYNC }) => rp({ method: 'GET', url: SYNC }))) diff --git a/lib/webhooks/updateTranslations.js b/lib/webhooks/updateTranslations.js index cb79991..9c26955 100644 --- a/lib/webhooks/updateTranslations.js +++ b/lib/webhooks/updateTranslations.js @@ -1,4 +1,9 @@ const rp = require('request-promise') module.exports = ({ HOOKS }) => async (projectId, languages) => - Promise.all(languages.map((lng) => rp({ method: 'GET', url: HOOKS[projectId].EXPORT[lng] }))) + Promise.all( + HOOKS[projectId].reduce( + (acc, { EXPORT }) => [...acc, ...languages.map((lng) => rp({ method: 'GET', url: EXPORT[lng] }))], + [], + ), + )