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
  3. 2
      frontend/edu-connect/src/lib/routes.ts

@ -1,5 +1,5 @@
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 sqlalchemy import select, func, desc, and_
from datetime import datetime, timedelta
@ -138,3 +138,46 @@ def get_discussion_stats():
except Exception as e:
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')
@auth_required()
def enrolled_courses():
def my_courses():
courses: Course = db.session.execute(select(Course).where(Course.authorID == g.current_user.id)
).scalars()
course_list: list[dict] = []

@ -1,5 +1,5 @@
export const routes = {
INDEX_PAGE : '/' ,
INDEX_PAGE : '/' ,
LOGIN_ROUTES : '/auth/login',
REGISTER_ROUTES : '/auth/register',
DASHBOARD_ROUTE : '/admin/dashboard',

Loading…
Cancel
Save