Skip to content

Commit

Permalink
Merge pull request #8 from ShyamKrishna33/add-transactions
Browse files Browse the repository at this point in the history
Create Add-Transaction Functionality
  • Loading branch information
vibes-863 committed Mar 14, 2024
2 parents 695736d + 4c850a8 commit c991903
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 1 deletion.
3 changes: 3 additions & 0 deletions src/main/java/BudgetBuddy.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@ public static void main(String[] args){
System.out.println("Displaying transactions:");
System.out.println(transactions.getTransactions());
break;
case "add":
transactions.processTransaction(input);
break;
default:
System.out.println("Invalid command.");
}
Expand Down
10 changes: 10 additions & 0 deletions src/main/java/financemanager/TransactionList.java
Original file line number Diff line number Diff line change
@@ -1,20 +1,30 @@
package financemanager;

import parser.Parser;
import transactions.Transaction;

import java.util.ArrayList;

public class TransactionList {

private ArrayList<Transaction> transactions;
private Parser parser;

public TransactionList() {
// Initialise ArrayList in the constructor
this.transactions = new ArrayList<>();
this.parser = new Parser();
}

public ArrayList<Transaction> getTransactions() {
return transactions;
}

private void addTransaction(Transaction t) {
transactions.add(t);
}

public void processTransaction(String input) {
addTransaction(parser.parseTransaction(input));
}
}
33 changes: 33 additions & 0 deletions src/main/java/parser/Parser.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,37 @@
package parser;

import transactions.Transaction;

public class Parser {

public static final int ADD_COMMAND_INDEX = 3;

public Transaction parseTransaction(String input) {
String data = input.substring(ADD_COMMAND_INDEX + 1);
String[] parseData = data.split("/");
String description = null;
String date = null;
String amount = null;
String category = null;
for(int i = 0; i < parseData.length; i++) {
switch (parseData[i].trim()) {
case "n":
description = parseData[i + 1];
break;
case "$":
amount = parseData[i + 1];
break;
case "d":
date = parseData[i + 1];
break;
case "c":
category = parseData[i + 1];
break;
default:
break;
}
}
assert amount != null;
return new Transaction(description, Float.parseFloat(amount), date, category);
}
}
9 changes: 8 additions & 1 deletion src/main/java/transactions/Transaction.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,13 @@ public class Transaction {
private float amount;
private String category;

public Transaction(String description, float amount, String category) {
private String date;

public Transaction(String description, float amount, String category, String date) {
this.description = description;
this.amount = amount;
this.category = category;
this.date = date;
}

public String getDescription() {
Expand All @@ -22,4 +25,8 @@ public float getAmount() {
public String getCategory() {
return category;
}

public String getDate() {
return date;
}
}

0 comments on commit c991903

Please sign in to comment.