Updated code to run on multiple files.
This commit is contained in:
60
index.js
60
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();
|
||||
|
||||
Reference in New Issue
Block a user