Spaces:
Sleeping
Sleeping
Update main.py
Browse files
main.py
CHANGED
|
@@ -42,9 +42,9 @@ try:
|
|
| 42 |
admin_user = auth.get_user_by_email("rairorr@gmail.com")
|
| 43 |
except firebase_admin._auth_utils.UserNotFoundError:
|
| 44 |
admin_user = auth.create_user(
|
| 45 |
-
email="
|
| 46 |
email_verified=True,
|
| 47 |
-
password="
|
| 48 |
display_name="Admin"
|
| 49 |
)
|
| 50 |
auth.set_custom_user_claims(admin_user.uid, {"admin": True})
|
|
@@ -242,6 +242,47 @@ def add_link():
|
|
| 242 |
ref.push({"keyword": keyword, "url": url})
|
| 243 |
return jsonify({"message": "Link added successfully"})
|
| 244 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 245 |
@app.route("/admin/stats", methods=["GET"])
|
| 246 |
@verify_id_token
|
| 247 |
@require_admin
|
|
|
|
| 42 |
admin_user = auth.get_user_by_email("rairorr@gmail.com")
|
| 43 |
except firebase_admin._auth_utils.UserNotFoundError:
|
| 44 |
admin_user = auth.create_user(
|
| 45 |
+
email="gsamukange@yahoo.com",
|
| 46 |
email_verified=True,
|
| 47 |
+
password="marco2025",
|
| 48 |
display_name="Admin"
|
| 49 |
)
|
| 50 |
auth.set_custom_user_claims(admin_user.uid, {"admin": True})
|
|
|
|
| 242 |
ref.push({"keyword": keyword, "url": url})
|
| 243 |
return jsonify({"message": "Link added successfully"})
|
| 244 |
|
| 245 |
+
@app.route("/admin/update_link/<link_id>", methods=["PUT"])
|
| 246 |
+
@verify_id_token
|
| 247 |
+
@require_admin
|
| 248 |
+
def update_link(link_id):
|
| 249 |
+
data = request.get_json()
|
| 250 |
+
keyword = data.get("keyword")
|
| 251 |
+
url = data.get("url")
|
| 252 |
+
if not (keyword and url):
|
| 253 |
+
return jsonify({"error": "Both 'keyword' and 'url' are required"}), 400
|
| 254 |
+
|
| 255 |
+
ref = firebase_db.reference(f"sponsoredLinks/{link_id}")
|
| 256 |
+
if not ref.get():
|
| 257 |
+
return jsonify({"error": "Link not found"}), 404
|
| 258 |
+
|
| 259 |
+
ref.update({"keyword": keyword, "url": url})
|
| 260 |
+
return jsonify({"message": "Link updated successfully"})
|
| 261 |
+
|
| 262 |
+
@app.route("/admin/sponsored_links", methods=["GET"])
|
| 263 |
+
@verify_id_token
|
| 264 |
+
@require_admin
|
| 265 |
+
def get_sponsored_links():
|
| 266 |
+
ref = firebase_db.reference("sponsoredLinks")
|
| 267 |
+
data = ref.get() or {}
|
| 268 |
+
|
| 269 |
+
# Convert to a list of objects with id included
|
| 270 |
+
links = [{"id": key, "keyword": val.get("keyword"), "url": val.get("url")}
|
| 271 |
+
for key, val in data.items()]
|
| 272 |
+
|
| 273 |
+
return jsonify({"sponsored_links": links})
|
| 274 |
+
|
| 275 |
+
@app.route("/admin/delete_link/<link_id>", methods=["DELETE"])
|
| 276 |
+
@verify_id_token
|
| 277 |
+
@require_admin
|
| 278 |
+
def delete_link(link_id):
|
| 279 |
+
ref = firebase_db.reference(f"sponsoredLinks/{link_id}")
|
| 280 |
+
if not ref.get():
|
| 281 |
+
return jsonify({"error": "Link not found"}), 404
|
| 282 |
+
|
| 283 |
+
ref.delete()
|
| 284 |
+
return jsonify({"message": "Link deleted successfully"})
|
| 285 |
+
|
| 286 |
@app.route("/admin/stats", methods=["GET"])
|
| 287 |
@verify_id_token
|
| 288 |
@require_admin
|