Make product structure sync use product export
All checks were successful
Build and Deploy / build-and-push (push) Successful in 1m23s

This commit is contained in:
Cauê Faleiros
2026-07-23 14:03:43 -03:00
parent bda1e22be3
commit 12aa5c7f83
6 changed files with 7681 additions and 5 deletions

View File

@@ -10,6 +10,18 @@ dotenv.config();
const app: Express = express();
const port = process.env.PORT || 3000;
function deriveProductionOrdersUrl(env: NodeJS.ProcessEnv) {
const raw = env.GRAPHS_API_URL || env.NEXSTAR_GRAPHS_API_URL || '';
if (!raw) return null;
try {
const parsed = new URL(raw);
return `${parsed.origin}/api/production-orders/tiny-sync`;
} catch {
return raw.replace(/\/api\/data.*$/, '/api/production-orders/tiny-sync');
}
}
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
@@ -228,8 +240,8 @@ 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 || null,
graphsUrl: env.PRODUCT_STRUCTURES_GRAPHS_API_URL || env.PRODUCTION_ORDERS_GRAPHS_API_URL || env.GRAPHS_PRODUCTION_ORDERS_API_URL || null,
inputFile: env.PRODUCT_STRUCTURES_INPUT_FILE || '/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,
requestDelayMs: env.PRODUCT_STRUCTURES_REQUEST_DELAY_MS || '2500',