Updated code to run on multiple files.

This commit is contained in:
2022-06-12 22:46:33 -04:00
parent c8507b34bc
commit 57dd8a12ff
2 changed files with 52 additions and 10 deletions

2
.gitignore vendored
View File

@@ -1,2 +1,4 @@
data/* data/*
intake/*
log/*
node_modules node_modules

View File

@@ -2,6 +2,9 @@ const csvToJson = require('csvtojson');
const { Parser } = require('json2csv'); const { Parser } = require('json2csv');
const fs = require('fs'); const fs = require('fs');
const ownerFiles = [];
const tenantFiles = [];
function formatPhoneNumber(phoneNumber){ function formatPhoneNumber(phoneNumber){
if (phoneNumber.length > 0){ if (phoneNumber.length > 0){
return `(${phoneNumber.slice(0, 3)}) ${phoneNumber.slice(3, 6)}-${phoneNumber.slice(6)}`; return `(${phoneNumber.slice(0, 3)}) ${phoneNumber.slice(3, 6)}-${phoneNumber.slice(6)}`;
@@ -28,7 +31,42 @@ function removeExtraZipCode(value){
return pieces[0]; 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({ csvToJson({
noheader: false, noheader: false,
headers: [ headers: [
@@ -51,7 +89,7 @@ function processOwnerFile(){
'OwnerName', 'OwnerName',
'OwnerPhone' 'OwnerPhone'
] ]
}).fromFile('./data/i96.csv').then((jsonObj) => { }).fromFile(`./intake/${fileName}`).then((jsonObj) => {
let data = jsonObj.map((x) => { let data = jsonObj.map((x) => {
let y = {}; let y = {};
y['Description Address L Name'] = `${x.PropertyAddress} ${x.City} ${x.State} ${x.Zip.slice(0, 5)}`; y['Description Address L Name'] = `${x.PropertyAddress} ${x.City} ${x.State} ${x.Zip.slice(0, 5)}`;
@@ -85,17 +123,17 @@ function processOwnerFile(){
return y; 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({ const parser = new Parser({
quote: '', quote: '',
}); });
const csv = parser.parse(data); const csv = parser.parse(data);
// console.log(csv); // 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({ csvToJson({
noheader: false, noheader: false,
headers: [ headers: [
@@ -123,7 +161,7 @@ function processTenantFile(){
'MailingAddressState', 'MailingAddressState',
'MailingAddressZip' 'MailingAddressZip'
] ]
}).fromFile('./data/i96tenant.csv').then(jsonObj => { }).fromFile(`./intake/${fileName}`).then(jsonObj => {
let data = jsonObj.map(x => { let data = jsonObj.map(x => {
let y = {}; let y = {};
y['Full Name P Name Full Name'] = x.FullName; y['Full Name P Name Full Name'] = x.FullName;
@@ -153,19 +191,21 @@ function processTenantFile(){
return y; 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({ const parser = new Parser({
quote: '', quote: '',
}); });
const csv = parser.parse(data); const csv = parser.parse(data);
// console.log(csv); // console.log(csv);
fs.writeFileSync('./data/tenant_result.csv', csv); fs.writeFileSync(`./data/${fileName.slice(0, -4)}.result.csv`, csv);
}) })
} }
function processFiles(){ function processFiles(){
processOwnerFile(); createDirectorys();
processTenantFile(); readFilesFromDir();
ownerFiles.forEach(x => processOwnerFile(x));
tenantFiles.forEach(x => processTenantFile(x));
} }
processFiles(); processFiles();