LogicGoInfotechSpaces commited on
Commit
c5411c1
·
1 Parent(s): 7cf424d

Improve admin Mongo database detection and error messages

Browse files
Files changed (1) hide show
  1. api/main.py +24 -10
api/main.py CHANGED
@@ -70,21 +70,26 @@ def _init_admin_mongo() -> None:
70
  return
71
  try:
72
  admin_client = MongoClient(ADMIN_MONGO_URI)
73
- try:
74
- admin_db = admin_client.get_default_database() or admin_client["admin"]
75
- except Exception:
 
76
  admin_db = admin_client["admin"]
 
 
77
  admin_media_clicks = admin_db["media_clicks"]
 
 
 
 
 
78
  try:
79
  admin_media_clicks.drop_index("user_id_1_header_1_media_id_1")
80
  log.info("Dropped legacy index user_id_1_header_1_media_id_1")
81
  except Exception as idx_err:
82
- log.info("Skipping legacy index drop: %s", idx_err)
83
- log.info(
84
- "Admin media click logging enabled on db=%s collection=%s",
85
- admin_media_clicks.database.name,
86
- admin_media_clicks.name,
87
- )
88
  except Exception as err:
89
  log.error("Failed to init admin Mongo client: %s", err)
90
  admin_media_clicks = None
@@ -204,7 +209,16 @@ def log_media_click(user_id: Optional[str], category_id: Optional[str]) -> None:
204
  }
205
  )
206
  except Exception as err:
207
- log.warning("Admin media click logging failed: %s", err)
 
 
 
 
 
 
 
 
 
208
 
209
 
210
  @app.get("/")
 
70
  return
71
  try:
72
  admin_client = MongoClient(ADMIN_MONGO_URI)
73
+ # get_default_database() extracts database from connection string (e.g., /adminPanel)
74
+ admin_db = admin_client.get_default_database()
75
+ if admin_db is None:
76
+ # Fallback if no database in URI
77
  admin_db = admin_client["admin"]
78
+ log.warning("No database in connection string, defaulting to 'admin'")
79
+
80
  admin_media_clicks = admin_db["media_clicks"]
81
+ log.info(
82
+ "Admin media click logging initialized: db=%s collection=%s",
83
+ admin_db.name,
84
+ admin_media_clicks.name,
85
+ )
86
  try:
87
  admin_media_clicks.drop_index("user_id_1_header_1_media_id_1")
88
  log.info("Dropped legacy index user_id_1_header_1_media_id_1")
89
  except Exception as idx_err:
90
+ # Index drop failure is non-critical (often permission issue)
91
+ if "Unauthorized" not in str(idx_err):
92
+ log.info("Skipping legacy index drop: %s", idx_err)
 
 
 
93
  except Exception as err:
94
  log.error("Failed to init admin Mongo client: %s", err)
95
  admin_media_clicks = None
 
209
  }
210
  )
211
  except Exception as err:
212
+ err_str = str(err)
213
+ if "Unauthorized" in err_str or "not authorized" in err_str.lower():
214
+ log.warning(
215
+ "Admin media click logging failed (permissions): user lacks read/write on db=%s collection=%s. "
216
+ "Check MongoDB user permissions.",
217
+ admin_media_clicks.database.name,
218
+ admin_media_clicks.name,
219
+ )
220
+ else:
221
+ log.warning("Admin media click logging failed: %s", err)
222
 
223
 
224
  @app.get("/")