-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcommands.js
More file actions
74 lines (57 loc) · 1.94 KB
/
commands.js
File metadata and controls
74 lines (57 loc) · 1.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
const {importCsvFile} = require('./importCsvFile');
const {importJsonFile} = require('./importJsonFile');
const {importXmlFile} = require('./importXmlFile');
const {Account, Transaction, Bank} = require('./classes');
const log4js = require("log4js");
const moment = require('moment');
const {exportCsvFile} = require("./exportCsvFile");
const {exportXmlFile} = require("./exportXmlFile");
const {exportJsonFile} = require('./exportJsonFile');
const logger = log4js.getLogger('program.js');
const importFile = (file) => {
const userFileType = file.split(".")[1];
switch(userFileType) {
case 'csv':
return importCsvFile(file);
break;
case 'json':
return importJsonFile(file);
break;
case 'xml':
return importXmlFile(file);
break;
}
}
const exportFile = (userFileType, transactions) => {
switch(userFileType) {
case 'csv':
return exportCsvFile(transactions);
break;
case 'json':
return exportJsonFile(transactions);
break;
case 'xml':
return exportXmlFile(transactions);
break;
}
}
const listAll = (transactions) => {
let newBank = new Bank(transactions, []);
newBank.logAccounts();
return newBank;
}
const listAccountTransactions = (transactions, user) => {
let account = new Account(user, [], 0);
account.filterTransactions(transactions);
account.calculateBalance();
account.logTransactions();
account.logBalance();
if(account.transactionList.length === 0) {
const e = new Error('Unable to find account holder. Please try again');
logger.error(e)
console.log(e)
return
}
return account;
}
module.exports = {importFile, exportFile, listAll, listAccountTransactions}