From 57dd8a12ffa16e97b8c336de2278dfea8a361860 Mon Sep 17 00:00:00 2001 From: Colin Diem Date: Sun, 12 Jun 2022 22:46:33 -0400 Subject: [PATCH] Updated code to run on multiple files. --- .gitignore | 2 ++ index.js | 60 +++++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 52 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index b35615f..5dd3948 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ data/* +intake/* +log/* node_modules \ No newline at end of file diff --git a/index.js b/index.js index 097e68f..7d8b68b 100644 --- a/index.js +++ b/index.js @@ -2,6 +2,9 @@ const csvToJson = require('csvtojson'); const { Parser } = require('json2csv'); const fs = require('fs'); +const ownerFiles = []; +const tenantFiles = []; + function formatPhoneNumber(phoneNumber){ if (phoneNumber.length > 0){ return `(${phoneNumber.slice(0, 3)}) ${phoneNumber.slice(3, 6)}-${phoneNumber.slice(6)}`; @@ -28,7 +31,42 @@ function removeExtraZipCode(value){ return pieces[0]; } -function processOwnerFile(){ +function readFilesFromDir(){ + var files = fs.readdirSync('./intake'); + for (var i = 0; i < files.length; i++){ + console.log(files[i]); + if (files[i].toLowerCase().includes('owner')){ + ownerFiles.push(files[i]); + } else + if (files[i].toLowerCase().includes('tenant')){ + tenantFiles.push(files[i]); + } else { + console.log(`${files[i]} doesn't match owner or tenant.`); + } + } +} + +function createDirectorys() { + try { + fs.mkdirSync('./data'); + } catch { + console.log('./data already exsists.'); + } + + try { + fs.mkdirSync('./intake'); + } catch { + console.log('./intake already exists.'); + } + + try { + fs.mkdirSync('./log'); + } catch { + console.log('./log already exists.'); + } +} + +function processOwnerFile(fileName){ csvToJson({ noheader: false, headers: [ @@ -51,7 +89,7 @@ function processOwnerFile(){ 'OwnerName', 'OwnerPhone' ] - }).fromFile('./data/i96.csv').then((jsonObj) => { + }).fromFile(`./intake/${fileName}`).then((jsonObj) => { let data = jsonObj.map((x) => { let y = {}; y['Description Address L Name'] = `${x.PropertyAddress} ${x.City} ${x.State} ${x.Zip.slice(0, 5)}`; @@ -85,17 +123,17 @@ function processOwnerFile(){ return y; }); - fs.writeFileSync('./data/result.json', JSON.stringify(data, null, 2)); + fs.writeFileSync(`./log/${fileName.slice(0, -4)}.result.json`, JSON.stringify(data, null, 2)); const parser = new Parser({ quote: '', }); const csv = parser.parse(data); // console.log(csv); - fs.writeFileSync('./data/result.csv', csv); + fs.writeFileSync(`./data/${fileName.slice(0, -4)}.result.csv`, csv); }); } -function processTenantFile(){ +function processTenantFile(fileName){ csvToJson({ noheader: false, headers: [ @@ -123,7 +161,7 @@ function processTenantFile(){ 'MailingAddressState', 'MailingAddressZip' ] - }).fromFile('./data/i96tenant.csv').then(jsonObj => { + }).fromFile(`./intake/${fileName}`).then(jsonObj => { let data = jsonObj.map(x => { let y = {}; y['Full Name P Name Full Name'] = x.FullName; @@ -153,19 +191,21 @@ function processTenantFile(){ return y; }); - fs.writeFileSync('./data/tenant_result.json', JSON.stringify(data, null, 2)); + fs.writeFileSync(`./log/${fileName.slice(0, -4)}.result.json`, JSON.stringify(data, null, 2)); const parser = new Parser({ quote: '', }); const csv = parser.parse(data); // console.log(csv); - fs.writeFileSync('./data/tenant_result.csv', csv); + fs.writeFileSync(`./data/${fileName.slice(0, -4)}.result.csv`, csv); }) } function processFiles(){ - processOwnerFile(); - processTenantFile(); + createDirectorys(); + readFilesFromDir(); + ownerFiles.forEach(x => processOwnerFile(x)); + tenantFiles.forEach(x => processTenantFile(x)); } processFiles();