From b03c50445fc819b919df616786954a4b09ea4d3e Mon Sep 17 00:00:00 2001 From: Jagraj Aulakh Date: Fri, 14 Apr 2023 16:37:04 -0400 Subject: [PATCH] #67 Made endpoint to update assignment fields --- backend/app/models.py | 8 -------- backend/app/routes.py | 19 +++++++++++++++++++ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/backend/app/models.py b/backend/app/models.py index de4d95b..1cfcae3 100644 --- a/backend/app/models.py +++ b/backend/app/models.py @@ -106,14 +106,6 @@ class Assignment(db.Model): due_date = sa.Column(sa.DateTime) created_at = sa.Column(sa.DateTime) - def from_dict(self, data) -> None: - for field in ["name", "course_id", "description", "due_date"]: - if field in data: - setattr(self, field, data[field]) - - if not self.created_at: - self.created_at = datetime.now() - def from_dict(self, data) -> None: for field in ["name", "course_id", "description", "due_date"]: if field in data: diff --git a/backend/app/routes.py b/backend/app/routes.py index 39e3f24..9b480f1 100644 --- a/backend/app/routes.py +++ b/backend/app/routes.py @@ -245,6 +245,7 @@ def get_assignment(id): @bp.route("/assignment/", methods=["DELETE"]) @login_required +@instructor_required def delete_assignment(id): a = Assignment.query.get(id) if not a: @@ -254,3 +255,21 @@ def delete_assignment(id): db.session.commit() return jsonify(a.to_dict()) +@bp.route("/assignment/", methods=["PUT"]) +@login_required +@instructor_required +def update_assignment(id): + a = Assignment.query.get(id) + if not a: + return error_response(400, f"Assignment with id {id} does not exist") + + data = request.get_json() + expected_fields = ["name", "description", "due_date"] + for d in data: + if d not in expected_fields: + return error_response(400, f"Field {d} was not expected") + + a.from_dict(data) + db.session.commit() + return jsonify(a.to_dict()) + -- 2.49.1