Skip to content

Commit

Permalink
Refactored functions
Browse files Browse the repository at this point in the history
  • Loading branch information
raamSoftwire committed Nov 9, 2017
1 parent 40fbf91 commit 70b780f
Show file tree
Hide file tree
Showing 2 changed files with 94 additions and 115 deletions.
66 changes: 22 additions & 44 deletions .idea/workspace.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

143 changes: 72 additions & 71 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,7 @@ const moment = require('moment');
const Transaction = require('C:\\Work\\Training\\SupportBank\\transactionClass.js');
const Account = require('C:\\Work\\Training\\SupportBank\\accountClass.js');

// const accountExistsQ = require('C:\\Work\\Training\\SupportBank\\accountExistsQ.js');
// import accountExistsQ from 'C:\\Work\\Training\\SupportBank\\accountExistsQ.js';
let accountExistsQ = require('C:\\Work\\Training\\SupportBank\\accountExistsQ.js');

const accountExistsQ = require('C:\\Work\\Training\\SupportBank\\accountExistsQ.js');

const formatter = new Intl.NumberFormat('en-UK', {
style: 'currency',
Expand All @@ -23,6 +20,72 @@ log4js.configure({
categories: {default: { appenders: ['file'], level: 'debug'}}
});

function parseTransactions(){
var keys = Object.keys(records[1]);

for(let i in records)
{
let lineValue = parseInt(i) + 2; // +1 for header row, +1 for zero base

if(!moment(records[i]['Date'],["DD/MM/YYYY","YYYY-MM-DD"],'en').isValid())
{
logger.error("Invalid date found in line " + lineValue +
" : " + records[i]['Date']);
}

else if (isNaN(parseFloat(records[i]['Amount'])))
{
logger.error("Invalid amount found in line " + lineValue
+ " : " + records[i]['Amount'])
}
else
{
transaction = new Transaction(
records[i][keys[0]],
records[i][keys[1]],
records[i][keys[2]],
records[i][keys[3]],
records[i][keys[4]]);

transactions.push(transaction);
//transaction not added to list of transactions
}
}
logger.info("Successfully parsed " + transactions.length + " of " + records.length +
" transactions");
}

function createAccounts()
{
for(let i in transactions)
{
if(!accountExistsQ(transactions[i].from))
{
//if the account does not exist,create the account
senderAccount = new Account(transactions[i].from,0);
accounts.push(senderAccount);
}
else
{
senderAccount = accounts.find(account => account.name === transactions[i].from);
}

if(!accountExistsQ(transactions[i].to))
{
//if the account does not exist,create the account
receiverAccount = new Account(transactions[i].to,0);
accounts.push(receiverAccount);
}
else
{
receiverAccount = accounts.find(account => account.name === transactions[i].to);
}

senderAccount.amount = senderAccount.amount - transactions[i].amount;
receiverAccount.amount = receiverAccount.amount + transactions[i].amount;
}
}

function importFile(fileName) {
var ext = fileName.split('.').pop();
if(ext === "csv")
Expand Down Expand Up @@ -73,79 +136,17 @@ logger.debug("Program starting up...")


transactions = [];
var keys = Object.keys(records[1]);
parseTransactions();

accounts = [];
createAccounts();


for(let i in records)
{
let lineValue = parseInt(i) + 2; // +1 for header row, +1 for zero base

if(!moment(records[i]['Date'],["DD/MM/YYYY","YYYY-MM-DD"],'en').isValid())
{
logger.error("Invalid date found in line " + lineValue +
" : " + records[i]['Date']);
}

else if (isNaN(parseFloat(records[i]['Amount'])))
{
logger.error("Invalid amount found in line " + lineValue
+ " : " + records[i]['Amount'])
}
else
{
transaction = new Transaction(
records[i][keys[0]],
records[i][keys[1]],
records[i][keys[2]],
records[i][keys[3]],
records[i][keys[4]]);

transactions.push(transaction);
//transaction not added to list of transactions
}
}
logger.info("Successfully parsed " + transactions.length + " of " + records.length +
" transactions");

accounts = [];
//
// function accountExistsQ(string) {
// check = false;
//
// for (let i in accounts)
// {
// if(accounts[i].name === string)
// check = true;
// }
// return check;
// }

for(let i in transactions)
{
if(!accountExistsQ(transactions[i].from))
{
//if the account does not exist,create the account
senderAccount = new Account(transactions[i].from,0);
accounts.push(senderAccount);
}
else
{
senderAccount = accounts.find(account => account.name === transactions[i].from);
}

if(!accountExistsQ(transactions[i].to))
{
//if the account does not exist,create the account
receiverAccount = new Account(transactions[i].to,0);
accounts.push(receiverAccount);
}
else
{
receiverAccount = accounts.find(account => account.name === transactions[i].to);
}

senderAccount.amount = senderAccount.amount - transactions[i].amount;
receiverAccount.amount = receiverAccount.amount + transactions[i].amount;
}

const userInput = readlineSync.question('Please enter "List All" or "List [Account]" : ');
const pattern = new RegExp("List ");
Expand Down

0 comments on commit 70b780f

Please sign in to comment.