This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
const fs = require('fs');
|
||||
const config = $('Set Configuration').first().json.config;
|
||||
|
||||
// Check file mount and inputs
|
||||
try {
|
||||
if (!fs.existsSync(config.EXCEL_FILE)) {
|
||||
throw new Error(`Excel file not found at: ${config.EXCEL_FILE}`);
|
||||
}
|
||||
if (!fs.existsSync(config.SOURCE_PDF_DIR)) {
|
||||
throw new Error(`PDF Source directory not found at: ${config.SOURCE_PDF_DIR}`);
|
||||
}
|
||||
|
||||
const files = fs.readdirSync(config.SOURCE_PDF_DIR);
|
||||
|
||||
// Check write permission to log path
|
||||
fs.writeFileSync(`${config.LOG_PATH}/.preflight_ok`, new Date().toISOString());
|
||||
|
||||
// Grab categories out of the previous node (Fetch Categories) if available
|
||||
// otherwise use fallback array
|
||||
let categories = ['Correspondence','RFA','Drawing','Transmittal','Report','Other'];
|
||||
try {
|
||||
const upstreamData = $('Fetch Categories').first()?.json?.data;
|
||||
if (upstreamData && Array.isArray(upstreamData)) {
|
||||
categories = upstreamData.map(c => c.name || c.type || c); // very loose mapping depending on API response
|
||||
}
|
||||
} catch(e) {}
|
||||
|
||||
// Grab existing tags from Fetch Tags node
|
||||
let existingTags = [];
|
||||
try {
|
||||
const tagData = $('Fetch Tags').first()?.json?.data || [];
|
||||
existingTags = Array.isArray(tagData) ? tagData.map(t => t.tag_name || t.name || '').filter(Boolean) : [];
|
||||
} catch(e) {}
|
||||
|
||||
return [{ json: {
|
||||
preflight_ok: true,
|
||||
pdf_count_in_source: files.length,
|
||||
excel_target: config.EXCEL_FILE,
|
||||
system_categories: categories,
|
||||
existing_tags: existingTags,
|
||||
timestamp: new Date().toISOString()
|
||||
}}];
|
||||
} catch (err) {
|
||||
throw new Error(`Pre-flight check failed: ${err.message}`);
|
||||
}
|
||||
Reference in New Issue
Block a user