Updated code to run on multiple files.
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,2 +1,4 @@
|
|||||||
data/*
|
data/*
|
||||||
|
intake/*
|
||||||
|
log/*
|
||||||
node_modules
|
node_modules
|
||||||
60
index.js
60
index.js
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user