"""Application Members Models""" import os # bson, from dotenv import load_dotenv from werkzeug.security import generate_password_hash, check_password_hash import psycopg2 load_dotenv() # DATABASE_URL=os.environ.get('DATABASE_URL') or 'mongodb://localhost:27017/myDatabase' # print(DATABASE_URL) # client = MongoClient(DATABASE_URL) # db = client.myDatabase dataUrl = os.getenv("DATABASE_URL") db = psycopg2.connect(dataUrl) class Members: """User Model""" def __init__(self): return # def get_by_id(self, user_id): # """Get a user by id""" # user = db.users.find_one({"_id": bson.ObjectId(user_id), "active": True}) # if not user: # return # user["_id"] = str(user["_id"]) # user.pop("password") # return user def get_by_username(self, username): """Get a user by username""" print(db) # sqv = "SELECT * FROM members WHERE id=%s" # x=["1"] sqv = "SELECT * FROM members WHERE username='"+username+"'" with db: with db.cursor() as cursor: cursor.execute(sqv, x) member = cursor.fetchall() # cursor.execute(sqv,x) # result = cursor.fetchall() # # member = db.members.find_one({"username": username, "active": True}) if not member: return member["_id"] = str(member["id"]) return member # def update(self, user_id, name=""): # """Update a user""" # data = {} # if name: # data["name"] = name # user = db.users.update_one( # {"_id": bson.ObjectId(user_id)}, # { # "$set": data # } # ) # user = self.get_by_id(user_id) # return user # # def delete(self, user_id): # """Delete a user""" # Books().delete_by_user_id(user_id) # user = db.users.delete_one({"_id": bson.ObjectId(user_id)}) # user = self.get_by_id(user_id) # return user # # def disable_account(self, user_id): # """Disable a user account""" # user = db.users.update_one( # {"_id": bson.ObjectId(user_id)}, # {"$set": {"active": False}} # ) # user = self.get_by_id(user_id) # return user def encrypt_password(self, password): """Encrypt password""" return generate_password_hash(password) def login(self, username, password): """Login a user""" member = self.get_by_username(username) if not member or not check_password_hash(member["password"], password): return member.pop("password") return member