From 480ee1aefc6469b5ddedfa34ff250fa87f1ee58b Mon Sep 17 00:00:00 2001 From: anniaru Date: Tue, 11 Aug 2026 14:06:53 +0000 Subject: [PATCH] Completed the csv read functions --- budgeting/backend/app.py | 41 ++++++++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/budgeting/backend/app.py b/budgeting/backend/app.py index 74c0e47..6c67fbf 100644 --- a/budgeting/backend/app.py +++ b/budgeting/backend/app.py @@ -107,20 +107,45 @@ def find_user_by_id(user_id): return None def get_budgets_for_user(user_id): - # TODO: read budgets.csv and return all rows where user_id matches - pass + # DONE? read budgets.csv and return all rows where user_id matches + rows = [] + for row in _read_csv("budgets.csv"): + if row["user_id"] == str(user_id): + rows.append(row) + if (rows.count == 0): + return None + else: + return rows def get_budget_by_id(budget_id): - # TODO: read budgets.csv and return the row where id matches, or None - pass + # DONE? read budgets.csv and return the row where id matches, or None + for row in _read_csv("budgets.csv"): + if row["id"] == str(budget_id): + return row + return None def get_categories_for_budget(budget_id): - # TODO: read categories.csv and return all rows where budget_id matches - pass - + # DONE? read categories.csv and return all rows where budget_id matches + rows = [] + for row in _read_csv("categories.csv"): + if row["budget_id"] == str(budget_id): + rows.append(row) + if (rows.count == 0): + return None + else: + return rows + def get_latest_budget(user_id): # TODO: get all budgets for this user and return the most recently created, or None - pass + latest_budget = [] + for row in _read_csv("budgets.csv"): + if (row["user_id"] == str(user_id)): + if (latest_budget == [] or latest_budget["date_created"] < row["date_created"]): + latest_budget = row + if (latest_budget == []): + return None + else: + return latest_budget def save_budget(user_id, monthly_income, carryover, categories): # TODO: append a new row to budgets.csv and save categories, return the new id