def register(email, password): user_data = Database.find_one("users", {"email": email}) if user_data is not None: raise UserAlreadyExistsError("Sorry, this user already exists!") if not Utils.valid_email(email): raise InvalidEmailAddressError("Please enter valid email address!") User(email, Utils.hash_password(password)).save_user_data() return True
def user_validation(email, password): # generate sha512 hashed password user_data = Database.find_one("users", {"email": email}) if user_data is None: raise UserNotExistsError("Sorry, this user does not exist!") if not Utils.check_hashed_password(password, user_data["password"]): raise InvalidPasswordError("Sorry, this password is invalid!") return True
def find_alerts_to_update(cls, minutes_since_update=AlertConst.TIME): update_limit = datetime.datetime.utcnow() - datetime.timedelta( minutes=minutes_since_update) return [ cls(**e) for e in Database.find("alerts", { "last_check": { "$lte": update_limit }, "active": True }) ]
def delete(self): Database.remove("alerts", {"_id": self._id})
def find_by_id(cls, alert_id): return cls(**Database.find_one("alerts", {"_id": alert_id}))
def find_by_email(cls, user_email): alerts_data = Database.find("alerts", {"user_email": user_email}) return [cls(**alert) for alert in alerts_data]
def save_alert_data(self): Database.update("alerts", {"_id": self._id}, self.json())
def database_init(): Database.initialize()
def find_by_email(cls, email): return cls(**Database.find_one("users", {"email": email}))
def save_user_data(self): Database.insert("users", self.json())
from project.models.alerts.alert import Alert from project.common.database import Database Database.initialize() alerts_to_update = Alert.find_alerts_to_update() for alert in alerts_to_update: alert.check_price() alert.send_email_alert()
def get_by_id(cls, item_id): return cls(**Database.find_one("items", {"_id": item_id}))
def save_item_data(self): Database.update("items", {"_id": self._id}, self.json())