Skip to content

Commit

Permalink
Implement feature: Delete transaction by index id
Browse files Browse the repository at this point in the history
  • Loading branch information
Vavinan committed Mar 13, 2024
1 parent ce5a255 commit d6c0028
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 12 deletions.
32 changes: 20 additions & 12 deletions src/main/java/BudgetBuddy.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import financemanager.TransactionList;
import ui.UserInterface;

import java.util.Scanner;

Expand All @@ -21,19 +22,26 @@ public static void main(String[] args){

while (isRunning) {
String input = in.nextLine();

switch (input.split(" ")[0]) {
case "bye":
System.out.println("Goodbye!");
isRunning = false;
break;
case "list":
System.out.println("Displaying transactions:");
System.out.println(transactions.getTransactions());
break;
default:
System.out.println("Invalid command.");
try{
switch (input.split(" ")[0]) {
case "bye":
System.out.println("Goodbye!");
isRunning = false;
break;
case "list":
System.out.println("Displaying transactions:");
System.out.println(transactions.getTransactions());
break;
case "delete":
transactions.removeTransaction(input);
break;
default:
System.out.println("Invalid command.");
}
} catch(IndexOutOfBoundsException e){
UserInterface.printIndexOutOfBounds(e.getMessage());
}

}


Expand Down
19 changes: 19 additions & 0 deletions src/main/java/financemanager/TransactionList.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
package financemanager;

import parser.Parser;
import transactions.Transaction;

import java.util.ArrayList;
import ui.UserInterface;

public class TransactionList {

private ArrayList<Transaction> transactions;
public static final int DELETE_BEGIN_INDEX = 7;
public static final int INDEX_OFFSET = 1;
public static final int LOWER_BOUND = 0;


public TransactionList() {
// Initialise ArrayList in the constructor
Expand All @@ -17,4 +23,17 @@ public ArrayList<Transaction> getTransactions() {
return transactions;
}

public void removeTransaction(String input){
int id = Integer.parseInt(input.substring(DELETE_BEGIN_INDEX).trim()) - INDEX_OFFSET;
int size = transactions.size();
if (id >= LOWER_BOUND && id < size) {
String itemRemoved = transactions.get(id).toString();
transactions.remove(id);
UserInterface.printDeleteMessage(itemRemoved);
} else {
throw new IndexOutOfBoundsException(size);
}
}


}
7 changes: 7 additions & 0 deletions src/main/java/transactions/Transaction.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,11 @@ public float getAmount() {
public String getCategory() {
return category;
}

@Override
public String toString() {
return (" Description: " + getDescription() + " | " +
" Amount: " + getAmount() + " | " +
" Category: " + getCategory()) ;
}
}

0 comments on commit d6c0028

Please sign in to comment.