#35-course-code #36

Merged
juggy1233 merged 5 commits from #35-course-code into master 2023-04-06 22:01:21 -04:00
2 changed files with 21 additions and 0 deletions
Showing only changes of commit 8ec489beb3 - Show all commits

View File

@@ -42,6 +42,7 @@ class User(UserMixin, db.Model):
def enroll(self, c) -> bool:
if not self.is_enrolled(c):
self.enrolled_courses.append(c)
db.session.commit()
return True
return False

View File

@@ -73,6 +73,7 @@ def register():
@bp.route("/course", methods=["POST"])
@login_required
def create_course():
data = request.get_json()
@@ -97,6 +98,7 @@ def create_course():
@bp.route("/user/<int:id>/courses", methods=["GET"])
@login_required
def get_courses(id):
u = User.query.get(id)
d = {"courses": []}
@@ -104,3 +106,21 @@ def get_courses(id):
d["courses"].append(c.to_dict())
resp = jsonify(d)
return resp
@bp.route("/user/<int:uid>/enroll/<int:cid>", methods=["POST"])
@login_required
def enroll_student(uid, cid):
u = User.query.get(uid)
if not u:
return error_response(400, f"User with id {uid} does not exist")
c = Course.query.get(cid)
if not c:
return error_response(400, f"Course with id {cid} does not exist")
if not u.enroll(c):
return error_response(400, f"User {uid} is already enrolled in course {cid}")
resp = {"user": u.to_dict(), "course": c.to_dict()}
return jsonify(resp)