#6 Created route to enroll student into a course
This commit is contained in:
@@ -42,6 +42,7 @@ class User(UserMixin, db.Model):
|
|||||||
def enroll(self, c) -> bool:
|
def enroll(self, c) -> bool:
|
||||||
if not self.is_enrolled(c):
|
if not self.is_enrolled(c):
|
||||||
self.enrolled_courses.append(c)
|
self.enrolled_courses.append(c)
|
||||||
|
db.session.commit()
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|||||||
@@ -73,6 +73,7 @@ def register():
|
|||||||
|
|
||||||
|
|
||||||
@bp.route("/course", methods=["POST"])
|
@bp.route("/course", methods=["POST"])
|
||||||
|
@login_required
|
||||||
def create_course():
|
def create_course():
|
||||||
data = request.get_json()
|
data = request.get_json()
|
||||||
|
|
||||||
@@ -97,6 +98,7 @@ def create_course():
|
|||||||
|
|
||||||
|
|
||||||
@bp.route("/user/<int:id>/courses", methods=["GET"])
|
@bp.route("/user/<int:id>/courses", methods=["GET"])
|
||||||
|
@login_required
|
||||||
def get_courses(id):
|
def get_courses(id):
|
||||||
u = User.query.get(id)
|
u = User.query.get(id)
|
||||||
d = {"courses": []}
|
d = {"courses": []}
|
||||||
@@ -104,3 +106,21 @@ def get_courses(id):
|
|||||||
d["courses"].append(c.to_dict())
|
d["courses"].append(c.to_dict())
|
||||||
resp = jsonify(d)
|
resp = jsonify(d)
|
||||||
return resp
|
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)
|
||||||
|
|||||||
Reference in New Issue
Block a user