Fix Backend

main
Kushal Dotel 6 months ago
parent 3741dbc38a
commit 5abe922b98
  1. 45
      backend/blueprints/admin/__init__.py
  2. 2
      backend/blueprints/course/__init__.py

@ -1,5 +1,5 @@
from utils .auth import auth_required, requires_role from utils .auth import auth_required, requires_role
from flask import Blueprint, jsonify, g from flask import Blueprint, jsonify, g, url_for
from db.model import User, Course, Enrollment, Chat, db from db.model import User, Course, Enrollment, Chat, db
from sqlalchemy import select, func, desc, and_ from sqlalchemy import select, func, desc, and_
from datetime import datetime, timedelta from datetime import datetime, timedelta
@ -138,3 +138,46 @@ def get_discussion_stats():
except Exception as e: except Exception as e:
return jsonify({'message': f'An error occurred: {str(e)}'}), 500 return jsonify({'message': f'An error occurred: {str(e)}'}), 500
@admin.route('/stats/userDetail', methods=['GET'])
@auth_required()
@requires_role([UserRole.ADMIN])
def get_user_details():
"""
Get detailed information for all users.
Only accessible by admin users.
"""
try:
current_user: User = g.current_user
# Get all users with basic info
users = db.session.execute(
select(User)
.order_by(desc(User.joinedDate))
).scalars()
# Format user data
user_list = [{
'id': str(user.id),
'username': user.username,
'email': user.email,
'firstName': user.firstName,
'lastName': user.lastName,
'profilePicture': url_for('send_file', filename=current_user.pfpFilename, _external=True),
'bio': user.bio,
'role': user.role,
'isActivated': user.isActivated,
'joinedDate': user.joinedDate.isoformat(),
'lastOnline': user.lastOnline.isoformat(),
'dateOfBirth': user.dob.isoformat() if user.dob else None
} for user in users]
return jsonify({
'users': user_list,
'count': len(user_list)
}), 200
except Exception as e:
return jsonify({'message': f'An error occurred: {str(e)}'}), 500

@ -405,7 +405,7 @@ def enrolled_courses():
@course.route('/myCourses') @course.route('/myCourses')
@auth_required() @auth_required()
def enrolled_courses(): def my_courses():
courses: Course = db.session.execute(select(Course).where(Course.authorID == g.current_user.id) courses: Course = db.session.execute(select(Course).where(Course.authorID == g.current_user.id)
).scalars() ).scalars()
course_list: list[dict] = [] course_list: list[dict] = []

Loading…
Cancel
Save