diff --git a/src/index.ts b/src/index.ts index df0252d..43a3dd7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -240,7 +240,7 @@ app.get('/api/trigger-product-structures-sync', (req: Request, res: Response) => options: { skus: env.PRODUCT_STRUCTURE_SKUS || null, productIds: env.PRODUCT_STRUCTURE_PRODUCT_IDS || null, - inputFile: env.PRODUCT_STRUCTURES_INPUT_FILE || '/app/data/product-structure-products.csv', + inputFile: env.PRODUCT_STRUCTURES_INPUT_FILE || ((env.PRODUCT_STRUCTURE_SKUS || env.PRODUCT_STRUCTURE_PRODUCT_IDS) ? null : '/app/data/product-structure-products.csv'), graphsUrl: env.PRODUCT_STRUCTURES_GRAPHS_API_URL || env.PRODUCTION_ORDERS_GRAPHS_API_URL || env.GRAPHS_PRODUCTION_ORDERS_API_URL || deriveProductionOrdersUrl(env), dryRun: env.PRODUCT_STRUCTURES_DRY_RUN || 'false', maxProducts: env.PRODUCT_STRUCTURES_MAX_PRODUCTS || null, diff --git a/src/scripts/sync-product-structures.ts b/src/scripts/sync-product-structures.ts index c4fd6ac..cc45d88 100644 --- a/src/scripts/sync-product-structures.ts +++ b/src/scripts/sync-product-structures.ts @@ -92,8 +92,6 @@ const GRAPHS_PRODUCTION_ORDERS_API_KEY = ( process.env.API_KEY || 'nexstar_secret_key_123' ); -const DEFAULT_INPUT_FILE = path.join(process.cwd(), 'data', 'product-structure-products.csv'); -const INPUT_FILE = process.env.PRODUCT_STRUCTURES_INPUT_FILE || (fs.existsSync(DEFAULT_INPUT_FILE) ? DEFAULT_INPUT_FILE : ''); const SKUS = String(process.env.PRODUCT_STRUCTURE_SKUS || '') .split(',') .map(value => value.trim()) @@ -102,6 +100,10 @@ const PRODUCT_IDS = String(process.env.PRODUCT_STRUCTURE_PRODUCT_IDS || '') .split(',') .map(value => value.trim()) .filter(Boolean); +const DEFAULT_INPUT_FILE = path.join(process.cwd(), 'data', 'product-structure-products.csv'); +const EXPLICIT_INPUT_FILE = process.env.PRODUCT_STRUCTURES_INPUT_FILE || ''; +const SHOULD_USE_DEFAULT_INPUT_FILE = !EXPLICIT_INPUT_FILE && !SKUS.length && !PRODUCT_IDS.length && fs.existsSync(DEFAULT_INPUT_FILE); +const INPUT_FILE = EXPLICIT_INPUT_FILE || (SHOULD_USE_DEFAULT_INPUT_FILE ? DEFAULT_INPUT_FILE : ''); const DRY_RUN = process.env.PRODUCT_STRUCTURES_DRY_RUN === 'true'; const FETCH_COMPONENT_UNITS = process.env.PRODUCT_STRUCTURES_FETCH_COMPONENT_UNITS !== 'false'; const STATE_FILE = process.env.PRODUCT_STRUCTURES_STATE_FILE || path.join(process.cwd(), 'product_structures_sync_state.json');