From 1a8463920318798690cbaa4fb6d2bad1d235deac Mon Sep 17 00:00:00 2001 From: Kushal Dotel Date: Sat, 11 Jan 2025 15:22:15 +0545 Subject: [PATCH 1/2] update the seed --- backend/app.py | 2 +- backend/constants/__init__.py | 4 ++++ backend/db/model.py | 6 +++--- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/backend/app.py b/backend/app.py index f9c6787..f123cff 100644 --- a/backend/app.py +++ b/backend/app.py @@ -41,7 +41,7 @@ def seed_data(): username=f"username{i}", hash_password=generate_password_hash("password123"), activationKey=hash_string(random_string_generator(16)), pfpFilename=DEFAULT_PROFILE_FILE, joinedDate=datetime.utcnow(), lastOnline=datetime.utcnow(), - bio=f"This is user{i}'s bio.", role=UserRole.ADMIN if i == 1 else UserRole.USER, + bio=f"This is user{i}'s bio.", role=int(UserRole.USER), isActivated=True, sessions=[], user_badges=[], enrollments=[], quizzes=[], quiz_attempts=[], chats=[], notifications=[]) for i in range(1, 6) ] diff --git a/backend/constants/__init__.py b/backend/constants/__init__.py index 8157ce2..1ec55d3 100644 --- a/backend/constants/__init__.py +++ b/backend/constants/__init__.py @@ -4,6 +4,10 @@ class UserRole(Enum): ADMIN = 0 USER = 1 + # Add this method to enable casting to int + def __int__(self): + return self.value + class PublishedStatus(Enum): APPROVED = 0 PENDING = 1 diff --git a/backend/db/model.py b/backend/db/model.py index f3a95f8..dae1a0c 100644 --- a/backend/db/model.py +++ b/backend/db/model.py @@ -4,8 +4,8 @@ from sqlalchemy import types, text, String, DateTime, func, Boolean, ForeignKey, from datetime import datetime import uuid from typing import List -from ..config import * -from ..constants import UserRole, PublishedStatus +from config import * +from constants import UserRole, PublishedStatus class Base(MappedAsDataclass, DeclarativeBase): pass @@ -28,8 +28,8 @@ class User(db.Model): quiz_attempts: Mapped[List["QuizAttempt"]] = relationship(back_populates="user", cascade="all, delete-orphan") chats: Mapped[List["Chat"]] = relationship(back_populates="user", cascade="all, delete-orphan") notifications: Mapped[List["Notification"]] = relationship(back_populates="user", cascade="all, delete-orphan") - dob: Mapped[datetime] = mapped_column(DateTime, nullable=False, default=datetime.fromisocalendar(2002, 1, 1)) user_badges: Mapped[List["UserBadge"]] = relationship(back_populates="user", cascade="all, delete-orphan") + dob: Mapped[datetime] = mapped_column(DateTime, nullable=False, default=datetime.fromisocalendar(2002, 1, 1)) pfpFilename: Mapped[str] = mapped_column(String(256), nullable=False, default=DEFAULT_PROFILE_FILE) joinedDate: Mapped[datetime] = mapped_column(DateTime, nullable=False, default=func.now()) lastOnline: Mapped[datetime] = mapped_column(DateTime, nullable=False, default=func.now(), onupdate=func.now()) From 9bf49396745df13e23f0e063c692f8a1ba918605 Mon Sep 17 00:00:00 2001 From: PANDACUSHION Date: Sat, 11 Jan 2025 15:39:05 +0545 Subject: [PATCH 2/2] made mail validation --- backend/utils/utils.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/backend/utils/utils.py b/backend/utils/utils.py index f0fbc82..2098c68 100644 --- a/backend/utils/utils.py +++ b/backend/utils/utils.py @@ -3,6 +3,7 @@ import hashlib import random import os from PyPDF2 import PdfReader +import re FILE_NAME = 'manjil.pdf' FILE_PATH = os.path.join(os.getcwd(), FILE_NAME) @@ -24,4 +25,9 @@ def read_pdf_human_readable(file_path: str) -> list[str]: pdf_page_text_contents.append(text.strip()) return pdf_page_text_contents - +def is_valid_email(email): + pattern = r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$' + if re.match(pattern, email): + return True + else: + return False \ No newline at end of file