Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Made back instant #142

Merged
merged 6 commits into from
Nov 27, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion src/main/java/data_access/FileUserDataAccessObject.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ public class FileUserDataAccessObject implements BuyDataAccessInterface, SellDat

public FileUserDataAccessObject(String jsonPath, UserFactory userFactory) throws IOException {
jsonFile = new File(jsonPath);
System.out.println(jsonFile.length());
if (jsonFile.length() == 0) {
user = new CommonUser();
save();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package interface_adapters.Dashboard;
import use_cases.Dashboard.DashboardInputBoundary;
import use_cases.Dashboard.DashboardInputData;

public class DashboardController {
final private DashboardInputBoundary dashboardInteractor;
Expand All @@ -9,6 +10,9 @@ public DashboardController(DashboardInputBoundary dashboardInteractor) {
}

public void execute() {
dashboardInteractor.execute();
dashboardInteractor.execute(new DashboardInputData());
}
public void execute(Boolean forceRefresh) {
dashboardInteractor.execute(new DashboardInputData(forceRefresh));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ public void prepareSuccessView(GetTransactionHistoryOutputData getTransactionHis
GetTransactionHistoryState state = getTransactionHistoryViewModel.getState();

state.setUserRecord(getTransactionHistoryOutputData.getUserRecord());
System.out.println(state.getUserRecord().toString());
getTransactionHistoryViewModel.setState(state);

viewManagerModel.setActiveView(getTransactionHistoryViewModel.getViewName());
Expand Down
8 changes: 3 additions & 5 deletions src/main/java/use_cases/BaseStockInteractor.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,11 @@ public BaseStockInteractor(APIAccessInterface apiAccessInterface) {
this.apiAccessInterface = apiAccessInterface;
}

protected TransactionHistory initHistory(User user, String ticker,
Double amount, Double boughtAt, Transaction transaction) {
protected TransactionHistory initHistory(String ticker, Double boughtAt) {
CompanyInformation companyInformation = apiAccessInterface.getCompanyProfile(ticker);
Stock newStock = new Stock(boughtAt, companyInformation.getName(), ticker);

List<Transaction> transactions = new ArrayList<>();
transactions.add(transaction);

return new TransactionHistory(newStock, transactions);
}
Expand All @@ -33,10 +31,10 @@ protected void updatePortfolio(User user, String ticker, Double amount) {
}

protected void addToHistory(HashMap<String, TransactionHistory> userHistory, String ticker,
User user, Double amount, Double currentPrice, Transaction transaction) {
gursi26 marked this conversation as resolved.
Show resolved Hide resolved
Double currentPrice, Transaction transaction) {
TransactionHistory transactionHistory;
if (!userHistory.containsKey(ticker)) {
transactionHistory = initHistory(user, ticker, amount, currentPrice, transaction);
transactionHistory = initHistory(ticker, currentPrice);
} else {
transactionHistory = userHistory.get(ticker);
}
Expand Down
3 changes: 1 addition & 2 deletions src/main/java/use_cases/Buy/BuyInteractor.java
Original file line number Diff line number Diff line change
Expand Up @@ -78,11 +78,10 @@ public void execute(BuyInputData buyInputData) {
super.addToHistory(
userHistory,
ticker,
user,
amount,
currentPrice,
transaction
);

userDataAccessObject.save();

BuyOutputData result = new BuyOutputData(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package use_cases.Dashboard;

public interface DashboardInputBoundary {
void execute();
void execute(DashboardInputData dashboardInputData);
}
20 changes: 20 additions & 0 deletions src/main/java/use_cases/Dashboard/DashboardInputData.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package use_cases.Dashboard;

public class DashboardInputData {
private Boolean aoiRefresh;

public DashboardInputData(Boolean aoiRefresh) {
this.aoiRefresh = aoiRefresh;
}
public DashboardInputData() {
this.aoiRefresh = false;
}

public Boolean getAoiRefresh() {
return aoiRefresh;
}

public void setAoiRefresh(Boolean aoiRefresh) {
this.aoiRefresh = aoiRefresh;
}
}
10 changes: 7 additions & 3 deletions src/main/java/use_cases/Dashboard/DashboardInteractor.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public DashboardInteractor(
}

@Override
public void execute() {
public void execute(DashboardInputData dashboardInputData) {
User user = userDataAccessObject.get();

HashMap<String, Double> portfolio = user.getPortfolio();
Expand All @@ -45,7 +45,11 @@ public void execute() {
String key = entry.getKey();
Double value = entry.getValue();

prices.put(key, driverAPI.getCurrentPrice(key).getPrice());
if (dashboardInputData.getAoiRefresh()) {
prices.put(key, driverAPI.getCurrentPrice(key).getPrice());
} else {
prices.put(key, history.get(key).getStock().getLastSeenPrice());
}
totalAssets += value * prices.get(key);

PortfolioInformation emptyInfo = new PortfolioInformation();
Expand Down Expand Up @@ -101,4 +105,4 @@ public void execute() {
DashboardOutputData result = new DashboardOutputData(userStats, portfolioInformations);
dashboardPresenter.prepareSuccessView(result);
}
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package use_cases.GetTransactionHistory;

import entities.*;
import entities.Transaction;
import entities.TransactionHistory;
import entities.User;

import java.time.LocalDate;
import java.util.List;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class GetTransactionHistoryInteractor implements GetTransactionHistoryInputBoundary{
Expand Down Expand Up @@ -38,44 +39,32 @@ public void execute() {
listOfTransactions.add(historyTransactionsForStock.getTransactions());
}


HashMap<String, List<List<String>>> userRecord = new HashMap<>();
for (String stock: stocks) {
for (int i = 0; i < stocks.size(); i ++) {
// List of Transactions of a Particular Stock (List of Transaction)
List<List<String>> listOfTransactionFacts = new ArrayList<>();

for (List<Transaction> transactions : listOfTransactions) {

for (Transaction transaction : transactions) {

String type = transaction.getType().toString();
String amount = transaction.getAmount().toString();
String pricePurchasedAt = transaction.getPricePoint().getPrice().toString();
String date = transaction.getPricePoint().getTimeStamp().toString();

// List containing Transaction Facts
List<String> Transaction = new ArrayList<>();
for (Transaction transaction : listOfTransactions.get(i)) {

Transaction.add(type);
Transaction.add(amount);
Transaction.add(pricePurchasedAt);
Transaction.add(date);
listOfTransactionFacts.add(Transaction);
String type = transaction.getType().toString();
String amount = transaction.getAmount().toString();
String pricePurchasedAt = transaction.getPricePoint().getPrice().toString();
String date = transaction.getPricePoint().getTimeStamp().toString();

}
// List containing Transaction Facts
List<String> Transaction = new ArrayList<>();

Transaction.add(type);
Transaction.add(amount);
Transaction.add(pricePurchasedAt);
Transaction.add(date);
listOfTransactionFacts.add(Transaction);
}
userRecord.put(stock, listOfTransactionFacts);

userRecord.put(stocks.get(i), listOfTransactionFacts);
}




GetTransactionHistoryOutputData transactionHistory = new GetTransactionHistoryOutputData(userRecord);

getTransactionHistoryPresenter.prepareSuccessView(transactionHistory);


}
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public void execute() {

Transaction transaction = new TopupTransaction(curBalance + amountToAdd, new PricePoint(LocalDate.now(), curBalance));

super.addToHistory(userHistory, "Stonks App", user, curBalance + amountToAdd, curBalance, transaction);
super.addToHistory(userHistory, "Stonks App", curBalance, transaction);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why are we adding to history on reset? I was under the impression that a reset clears everything, including resetting current balance to 10000, removing all owned stocks and clearing history?

userDataAccessObject.save();

ResetBalanceOutputData result = new ResetBalanceOutputData(curBalance + amountToAdd);
Expand Down
2 changes: 0 additions & 2 deletions src/main/java/use_cases/Sell/SellInteractor.java
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,6 @@ public void execute(SellInputData sellInputData) {
super.addToHistory(
userHistory,
ticker,
user,
amount,
currentPrice,
transaction
);
Expand Down
15 changes: 6 additions & 9 deletions src/main/java/view/DashboardView.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
package view;

// Imports for dashboard

import interface_adapters.Buy.BuyViewModel;
import interface_adapters.Dashboard.DashboardController;
import interface_adapters.Dashboard.DashboardState;
import interface_adapters.Dashboard.DashboardViewModel;
import interface_adapters.ResetBalance.ResetBalanceController;
import interface_adapters.ViewManagerModel;

// Imports to allow dashboard to switch to other views
import interface_adapters.Buy.BuyViewModel;
import interface_adapters.Sell.SellViewModel;
import interface_adapters.GetNews.GetNewsViewModel;
import interface_adapters.ResetBalance.ResetBalanceViewModel;
gursi26 marked this conversation as resolved.
Show resolved Hide resolved
import interface_adapters.GetTransactionHistory.GetTransactionHistoryViewModel;
import interface_adapters.ResetBalance.ResetBalanceController;
import interface_adapters.Sell.SellViewModel;
import interface_adapters.ViewManagerModel;

import javax.swing.*;
import java.awt.*;
Expand Down Expand Up @@ -88,8 +86,7 @@ public DashboardView(DashboardViewModel dashboardViewModel,
new ActionListener() {
public void actionPerformed(ActionEvent evt) {
if (evt.getSource().equals(refresh)) {
DashboardState currentState = dashboardViewModel.getState();
dashboardController.execute();
dashboardController.execute(true);
dashboardViewModel.firePropertyChanged();
}
}
Expand Down
6 changes: 0 additions & 6 deletions src/main/java/view/TransactionHistoryView.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
package view;

import drivers.TableModel;
import interface_adapters.Buy.BuyController;
import interface_adapters.Buy.BuyState;
import interface_adapters.Buy.BuyViewModel;
import interface_adapters.Dashboard.DashboardViewModel;
import interface_adapters.GetTransactionHistory.GetTransactionHistoryController;
import interface_adapters.GetTransactionHistory.GetTransactionHistoryState;
Expand All @@ -15,8 +11,6 @@
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.HashMap;
Expand Down
Loading