text-morph-shareen / src /backend /db_connection.py
shareen1's picture
Upload 28 files
8cef7ca verified
import pymongo
import bcrypt
import uuid
import datetime # Import datetime
MONGO_URI = "mongodb+srv://shareenpan2:Fgouter55@cluster0.s3dpu.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0"
def get_connection():
client = pymongo.MongoClient(MONGO_URI)
db = client.get_database("summarization_paraphrasing_db") # You might want to change the database name
return db
def create_user(email, username, password, role='viewer'): # Removed 'name'
db = get_connection()
users_collection = db.users
hashed_pw = bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt())
user_id = str(uuid.uuid4())
try:
user_data = {
"_id": user_id,
"username": username,
"email": email,
"password": hashed_pw.decode('utf-8'),
"role": role,
"createdAt": datetime.datetime.now() # Set to current datetime
}
users_collection.insert_one(user_data)
return True
except pymongo.errors.DuplicateKeyError as err:
print(f"Error: {err}")
return False
finally:
db.client.close()
def validate_user(username, password):
db = get_connection()
users_collection = db.users
user = users_collection.find_one({"username": username})
db.client.close()
if user and bcrypt.checkpw(password.encode('utf-8'), user['password'].encode('utf-8')):
return user
return None