You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
FreeBug/backend/app.py

78 lines
2.5 KiB

from sys import prefix
from flask import Flask
# from FreeBug.backend.blueprints import notification
from db.model import db
from config import *
from db.model import User
from werkzeug.security import generate_password_hash
from sqlalchemy import text
from flask import jsonify
import uuid
from datetime import datetime
from constants import UserRole
from blueprints.profile import profile as profileBlueprint
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = DB_URI
db.init_app(app)
app.register_blueprint(profileBlueprint, url_prefix='/api')
@app.route('/', methods=['GET', 'POST'])
def homepage():
return {'message': 'Welcome back !'}, 200
@app.route('/seed-users', methods=['GET'])
def seed_users():
try:
# Drop and recreate schema (only for testing, not recommended in production)
sql = text('DROP SCHEMA public CASCADE; CREATE SCHEMA public;')
with db.engine.connect() as connection:
connection.execute(sql)
db.create_all() # Recreate tables
# Define roles and constants (ensure UserRole.USER is an integer or map it)
default_role = UserRole.USER.value if hasattr(UserRole, 'USER') else 1
default_profile_file = "defaultUserBanner.png"
# Create seed users
users = [
User(
email=f"user{i}@example.com",
firstName=f"FirstName{i}",
lastName=f"LastName{i}",
username=f"username{i}",
hash_password=generate_password_hash("password123"),
pfpFilename=default_profile_file,
joinedDate=datetime.utcnow(),
lastOnline=datetime.utcnow(),
bio=f"This is user{i}'s bio.",
role=default_role,
isActivated=True,
sessions=[],
user_badges=[],
enrollments=[],
quizzes=[],
quiz_attempts=[],
chats=[],
notifications=[]
)
for i in range(1, 6)
]
# Add users to the database
db.session.add_all(users)
db.session.commit()
return {"message": "Users seeded successfully!"}, 201
except Exception as e:
db.session.rollback()
return {"error": str(e)}, 500
if __name__ == '__main__':
with app.app_context():
db.create_all()
app.run(host='0.0.0.0', port=9999, debug=True)