Coverage for app/routes/classes.py: 100%
36 statements
« prev ^ index » next coverage.py v7.6.12, created at 2025-05-02 02:49 +0000
« prev ^ index » next coverage.py v7.6.12, created at 2025-05-02 02:49 +0000
1from flask import Blueprint, request
2from app.models.status_codes import StatusCodes
3from app.models.response import *
4from app.services.class_service import insert_new_class, insert_class_user, fetch_classes_by_instructor
6classes_bp = Blueprint('classes', __name__)
8@classes_bp.route('/classes/create', methods=['POST'])
9def create_class():
10 data = request.json
12 required_fields = ['classTitle', 'classCode', 'instructorId', 'classHexColor']
13 missing_fields = [field for field in required_fields if field not in data]
15 if missing_fields:
16 return error_response(
17 f"Missing required fields: {', '.join(missing_fields)}",
18 None,
19 StatusCodes.BAD_REQUEST
20 )
22 try:
23 new_class = insert_new_class(data)
24 return success_response(
25 "Class created successfully",
26 new_class,
27 StatusCodes.CREATED
28 )
29 except Exception as e:
30 return error_response(
31 f"Error creating class: {str(e)}",
32 None,
33 StatusCodes.SERVER_ERROR
34 )
36@classes_bp.route('/classes/instructor/<instructor_id>', methods=['GET'])
37def get_classes_by_instructor(instructor_id):
38 try:
39 classes = fetch_classes_by_instructor(instructor_id)
40 return success_response(
41 f"Found {len(classes)} class(es) for instructor {instructor_id}",
42 classes,
43 StatusCodes.OK
44 )
45 except Exception as e:
46 return error_response(
47 f"Error fetching classes: {str(e)}",
48 None,
49 StatusCodes.SERVER_ERROR
50 )
52@classes_bp.route('/classes/register', methods=['POST'])
53def register_user_to_class():
54 data = request.json
55 required_fields = ['studentId', 'classId']
56 missing_fields = [field for field in required_fields if field not in data]
58 if missing_fields:
59 return error_response(
60 f"Missing required fields: {', '.join(missing_fields)}",
61 None,
62 StatusCodes.BAD_REQUEST
63 )
65 try:
66 new_registration = insert_class_user(data['studentId'], data['classId'])
67 return success_response(
68 "Class registration successful",
69 new_registration,
70 StatusCodes.CREATED
71 )
72 except Exception as e:
73 return error_response(
74 f"Error registering to class: {str(e)}",
75 None,
76 StatusCodes.SERVER_ERROR
77 )