Spaces:
Sleeping
Sleeping
| from fastapi import HTTPException | |
| from config import db, auth | |
| def create_user_in_firestore(user_data): | |
| try: | |
| # Create user in Firebase Authentication | |
| user = auth.create_user( | |
| email=user_data["email"], | |
| password=user_data["password"], | |
| display_name=f"{user_data['name']} {user_data['surname']}" | |
| ) | |
| # Store user data in Firestore with Firebase UID | |
| user_ref = db.collection("users").document(user.uid) | |
| user_ref.set({ | |
| "uid": user.uid, # Store Firebase UID in Firestore | |
| "name": user_data["name"], | |
| "surname": user_data["surname"], | |
| "email": user_data["email"], | |
| "phone": user_data["phone"], | |
| "role": user_data["role"], | |
| "status": "Active" | |
| }) | |
| return {"isSuccess": True, "message": "User created successfully", "uid": user.uid} | |
| except Exception as e: | |
| raise HTTPException(status_code=400, detail=str(e)) | |
| def get_user_from_firestore(user_id: str): | |
| try: | |
| # Use Firebase UID instead of UUID | |
| user_ref = db.collection("users").document(user_id) | |
| user_snapshot = user_ref.get() | |
| if user_snapshot.exists: | |
| return {"isSuccess": True, "data": user_snapshot.to_dict()} | |
| else: | |
| raise HTTPException(status_code=404, detail="User not found") | |
| except Exception as e: | |
| raise HTTPException(status_code=500, detail=str(e)) | |
| def update_user_in_firestore(user_id: str, update_data): | |
| try: | |
| # Use Firebase UID instead of UUID | |
| user_ref = db.collection("users").document(user_id) | |
| user_ref.update(update_data) | |
| # Optionally update user data in Firebase Auth (e.g., email, password) | |
| if 'email' in update_data: | |
| auth.update_user(user_id, email=update_data['email']) | |
| if 'password' in update_data: | |
| auth.update_user(user_id, password=update_data['password']) | |
| return {"isSuccess": True, "message": "User updated successfully"} | |
| except Exception as e: | |
| raise HTTPException(status_code=400, detail=str(e)) | |
| def delete_user_from_firestore(user_id: str): | |
| try: | |
| # Delete user from Firestore using Firebase UID | |
| user_ref = db.collection("users").document(user_id) | |
| user_ref.delete() | |
| # Delete user from Firebase Auth | |
| auth.delete_user(user_id) | |
| return {"isSuccess": True, "message": "User deleted successfully"} | |
| except Exception as e: | |
| raise HTTPException(status_code=400, detail=str(e)) | |