diff --git a/.env.sample b/.env.sample index 0f810e0..3250ad4 100644 --- a/.env.sample +++ b/.env.sample @@ -2,10 +2,14 @@ EDENRED_USERNAME= EDENRED_PASSWORD= EDENRED_TOKEN= -# Comma-separated. -# both need to have the same length -EDENRED_ACCOUNT_MAP= -ACTUAL_ACCOUNT_MAP= +EDENRED_ACCOUNT= +ACTUAL_ACCOUNT= + +EDENRED_ACCOUNT_1= +ACTUAL_ACCOUNT_1= +EDENRED_ACCOUNT_2= +ACTUAL_ACCOUNT_2= +# ... ACTUAL_SERVER_URL="server url" ACTUAL_SERVER_PASSWORD="server password" diff --git a/README.Docker.md b/README.Docker.md index bfb9867..f4b073a 100644 --- a/README.Docker.md +++ b/README.Docker.md @@ -17,8 +17,10 @@ services: - EDENRED_USERNAME= - EDENRED_PIN= - EDENRED_VERSION= # default 4.1.0 - - EDENRED_ACCOUNT_MAP=comma separated vlue (Both EDENRED_ACCOUNT_MAP and ACTUAL_ACCOUNT_MAP need to have the same size) - - ACTUAL_ACCOUNT_MAP=#comma separated vlue + - EDENRED_ACCOUNT= + - ACTUAL_ACCOUNT= + - EDENRED_ACCOUNT_1= + - ACTUAL_ACCOUNT_1= - ACTUAL_SERVER_URL= - ACTUAL_SERVER_PASSWORD= - ACTUAL_SYNC_ID= @@ -31,8 +33,10 @@ docker run -d --name myedenredactual \ - e 'EDENRED_USERNAME=' \ - e 'EDENRED_PIN=' \ - e 'EDENRED_VERSION=' \ - - e 'EDENRED_ACCOUNT_MAP=' \ - - e 'ACTUAL_ACCOUNT_MAP=' \ + - e 'EDENRED_ACCOUNT=' \ + - e 'ACTUAL_ACCOUNT=' \ + - e 'EDENRED_ACCOUNT_1=' \ + - e 'ACTUAL_ACCOUNT_1=' \ - e 'ACTUAL_SERVER_URL= ' \ - e 'ACTUAL_SERVER_PASSWORD=' \ - e 'ACTUAL_SYNC_ID=' \ diff --git a/config.js b/config.js index 2eb3d6d..f77e30f 100644 --- a/config.js +++ b/config.js @@ -12,8 +12,8 @@ const EDENRED_VERSION = process.env.EDENRED_VERSION || "4.1.0"; const EDENRED_USERNAME = process.env.EDENRED_USERNAME || ""; const EDENRED_PIN = process.env.EDENRED_PIN || ""; -const EDENRED_ACCOUNT_MAP = process.env.EDENRED_ACCOUNT_MAP || ""; -const ACTUAL_ACCOUNT_MAP = process.env.ACTUAL_ACCOUNT_MAP || ""; +const EDENRED_ACCOUNT = process.env.EDENRED_ACCOUNT || ""; +const ACTUAL_ACCOUNT = process.env.ACTUAL_ACCOUNT || ""; const CRON_EXPRESSION = process.env.CRON_EXPRESSION || ""; const ACTUAL_SYNC_ID = process.env.ACTUAL_SYNC_ID || ""; @@ -21,14 +21,27 @@ const ACTUAL_SYNC_ID = process.env.ACTUAL_SYNC_ID || ""; function getAppConfigFromEnv() { var EDENRED_ACCOUNT_MAPPING = {} var ACTUAL_ACCOUNT_MAPPING = {} - var edenredSplit = EDENRED_ACCOUNT_MAP.split(','); - var actualSplit = ACTUAL_ACCOUNT_MAP.split(','); - if (edenredSplit.length != actualSplit.length) { - throw new Error(`Invalid accounts configs`); + if (!EDENRED_ACCOUNT){ + throw new Error(`Missing environment variable: EDENRED_ACCOUNT`); } - for (var i = 0; i < edenredSplit.length; i++) { - EDENRED_ACCOUNT_MAPPING[edenredSplit[i]] = actualSplit[i]; - ACTUAL_ACCOUNT_MAPPING[actualSplit[i]] = edenredSplit[i]; + + if (!ACTUAL_ACCOUNT){ + throw new Error(`Missing environment variable: ACTUAL_ACCOUNT`); + } + + EDENRED_ACCOUNT_MAPPING[EDENRED_ACCOUNT] = ACTUAL_ACCOUNT + ACTUAL_ACCOUNT_MAPPING[ACTUAL_ACCOUNT] = EDENRED_ACCOUNT + + var i = 1; + while(true){ + edenred = process.env[`EDENRED_ACCOUNT_${i}`] || "" + actualSplit = process.env[`ACTUAL_ACCOUNT_${i}`] || "" + if (!edenred || !actualSplit) { + break; + } + i++; + EDENRED_ACCOUNT_MAPPING[edenred] = actualSplit; + ACTUAL_ACCOUNT_MAPPING[actualSplit] = edenred; } const appConfig = { APP_PORT, @@ -36,10 +49,8 @@ function getAppConfigFromEnv() { EDENRED_USERNAME, EDENRED_PIN, EDENRED_VERSION, - EDENRED_ACCOUNT_MAP, ACTUAL_ACCOUNT_MAPPING, EDENRED_ACCOUNT_MAPPING, - ACTUAL_ACCOUNT_MAP, ACTUAL_SERVER_URL, ACTUAL_SERVER_PASSWORD, ACTUAL_SYNC_ID, diff --git a/docker-compose.yaml b/docker-compose.yaml index c445a40..2dd78d3 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -12,8 +12,10 @@ services: - EDENRED_USERNAME= - EDENRED_PIN= - EDENRED_VERSION= # default 4.1.0 - - EDENRED_ACCOUNT_MAP= #comma separated vlue (Both EDENRED_ACCOUNT_MAP and ACTUAL_ACCOUNT_MAP need to have the same size) - - ACTUAL_ACCOUNT_MAP= #comma separated vlue + - EDENRED_ACCOUNT= + - ACTUAL_ACCOUNT= + - EDENRED_ACCOUNT_1= + - ACTUAL_ACCOUNT_1= - ACTUAL_SERVER_URL= - ACTUAL_SERVER_PASSWORD= - ACTUAL_SYNC_ID=