RoyAalekh commited on
Commit
6499080
·
1 Parent(s): fa7e64a

Fix critical async/await bug in Supabase database methods

Browse files

- Fix get_tree() method to be async (was causing 500 error)
- Fix update_tree() method to be async
- Fix delete_tree() method to be async
- Add missing _check_connection() calls for consistency
- Remove debugging code from frontend

This fixes the 'object dict can't be used in await expression' error
that was preventing tree editing from working properly.

static/js/tree-track-app.js CHANGED
@@ -124,6 +124,7 @@ export class TreeTrackApp {
124
 
125
  async checkForEditTree() {
126
  const editTreeId = localStorage.getItem('editTreeId');
 
127
  if (editTreeId) {
128
  // Clear the localStorage item to prevent repeated loads
129
  localStorage.removeItem('editTreeId');
 
124
 
125
  async checkForEditTree() {
126
  const editTreeId = localStorage.getItem('editTreeId');
127
+
128
  if (editTreeId) {
129
  // Clear the localStorage item to prevent repeated loads
130
  localStorage.removeItem('editTreeId');
supabase_database.py CHANGED
@@ -93,8 +93,9 @@ class SupabaseDatabase:
93
  logger.error(f"Error retrieving trees: {e}")
94
  raise
95
 
96
- def get_tree(self, tree_id: int) -> Optional[Dict[str, Any]]:
97
  """Get a specific tree by ID"""
 
98
  try:
99
  result = self.client.table('trees') \
100
  .select("*") \
@@ -109,8 +110,9 @@ class SupabaseDatabase:
109
  logger.error(f"Error retrieving tree {tree_id}: {e}")
110
  raise
111
 
112
- def update_tree(self, tree_id: int, tree_data: Dict[str, Any]) -> Dict[str, Any]:
113
  """Update a tree record"""
 
114
  try:
115
  # Remove id from update data if present
116
  update_data = {k: v for k, v in tree_data.items() if k != 'id'}
@@ -131,8 +133,9 @@ class SupabaseDatabase:
131
  logger.error(f"Error updating tree {tree_id}: {e}")
132
  raise
133
 
134
- def delete_tree(self, tree_id: int) -> bool:
135
  """Delete a tree record"""
 
136
  try:
137
  result = self.client.table('trees') \
138
  .delete() \
 
93
  logger.error(f"Error retrieving trees: {e}")
94
  raise
95
 
96
+ async def get_tree(self, tree_id: int) -> Optional[Dict[str, Any]]:
97
  """Get a specific tree by ID"""
98
+ self._check_connection()
99
  try:
100
  result = self.client.table('trees') \
101
  .select("*") \
 
110
  logger.error(f"Error retrieving tree {tree_id}: {e}")
111
  raise
112
 
113
+ async def update_tree(self, tree_id: int, tree_data: Dict[str, Any]) -> Dict[str, Any]:
114
  """Update a tree record"""
115
+ self._check_connection()
116
  try:
117
  # Remove id from update data if present
118
  update_data = {k: v for k, v in tree_data.items() if k != 'id'}
 
133
  logger.error(f"Error updating tree {tree_id}: {e}")
134
  raise
135
 
136
+ async def delete_tree(self, tree_id: int) -> bool:
137
  """Delete a tree record"""
138
+ self._check_connection()
139
  try:
140
  result = self.client.table('trees') \
141
  .delete() \