Skip to content

Commit

Permalink
Merge pull request #9 from Vavinan/feature-delete
Browse files Browse the repository at this point in the history
Add feature: Delete transaction by index id
  • Loading branch information
vibes-863 committed Mar 14, 2024
2 parents c991903 + 071aef6 commit f196512
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 16 deletions.
38 changes: 23 additions & 15 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,22 +22,29 @@ 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;
case "add":
transactions.processTransaction(input);
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;
case "add":
transactions.processTransaction(input);
break;
default:
System.out.println("Invalid command.");
}
} catch(IndexOutOfBoundsException e){
UserInterface.printIndexOutOfBounds(e.getMessage());
}

}


Expand Down
17 changes: 17 additions & 0 deletions src/main/java/financemanager/TransactionList.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,14 @@
import transactions.Transaction;

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

public class TransactionList {

public static final int DELETE_BEGIN_INDEX = 7;
public static final int INDEX_OFFSET = 1;
public static final int LOWER_BOUND = 0;

private ArrayList<Transaction> transactions;
private Parser parser;

Expand All @@ -20,6 +25,18 @@ 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);
}
}

private void addTransaction(Transaction t) {
transactions.add(t);
}
Expand Down
9 changes: 8 additions & 1 deletion src/main/java/transactions/Transaction.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,15 @@ public float getAmount() {
public String getCategory() {
return category;
}

public String getDate() {
return date;
}

@Override
public String toString() {
return (" Description: " + getDescription() + " | " +
" Amount: " + getAmount() + " | " +
" Category: " + getCategory()) ;
}
}
9 changes: 9 additions & 0 deletions src/main/java/ui/UserInterface.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
package ui;

public class UserInterface {

public static void printDeleteMessage(String transaction){
System.out.println("Got it. I have removed the following transaction from the history");
System.out.println(transaction);
}

public static void printIndexOutOfBounds(String message){
System.out.println(message + ". Check you input properly");
}
}

0 comments on commit f196512

Please sign in to comment.