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

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 

5 

6classes_bp = Blueprint('classes', __name__) 

7 

8@classes_bp.route('/classes/create', methods=['POST']) 

9def create_class(): 

10 data = request.json 

11 

12 required_fields = ['classTitle', 'classCode', 'instructorId', 'classHexColor'] 

13 missing_fields = [field for field in required_fields if field not in data] 

14 

15 if missing_fields: 

16 return error_response( 

17 f"Missing required fields: {', '.join(missing_fields)}", 

18 None, 

19 StatusCodes.BAD_REQUEST 

20 ) 

21 

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 ) 

35 

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 ) 

51 

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] 

57 

58 if missing_fields: 

59 return error_response( 

60 f"Missing required fields: {', '.join(missing_fields)}", 

61 None, 

62 StatusCodes.BAD_REQUEST 

63 ) 

64 

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 ) 

78