Untitled
unknown
plain_text
5 months ago
2.2 kB
3
Indexable
from flask_smorest import Blueprint from flask.views import MethodView from db import course_items from flask import abort,request import uuid blp= Blueprint("course_items",__name__ , description="Operations on course_items" ) @blp.route("/course_item/<string:course_item_id>") class Course_item(MethodView): def get(self,course_item_id): try: return course_items[course_item_id] except KeyError: abort(404, message="Course_item not found.") def delete(self,course_item_id): try: del course_items[course_item_id] return {"message": "Course_item deleted."} except KeyError: abort(404, message="Course_item not found.") def put(self,course_item_id): course_item_data = request.get_json() if "type" not in course_item_data or "name" not in course_item_data: abort(400,message="Bad request. Ensure 'type', and 'name' are included in the JSON payload.",) try: course_item = course_items[course_item_id] course_item |= course_item_data return course_item except KeyError: abort(404, message="Course_item not found.") @blp.route("/course_item") class Course_itemList(MethodView): def get(self): return {"course_items": list(course_items.values())} def post(self): course_item_data = request.get_json() if ("type" not in course_item_data or "specialization_id" not in course_item_data or "name" not in course_item_data): abort(400,message="Bad request. Ensure 'type', 'specialization_id', and 'name' are included in the JSON payload.",) for course_item in course_items.values(): if (course_item_data["name"] == course_item["name"] and course_item_data["specialization_id"] == course_item["specialization_id"]): abort(400, message="Course_item already exists.") course_item_id = uuid.uuid4().hex course_item = {**course_item_data, "id": course_item_id} course_items[course_item_id] = course_item return course_item
Editor is loading...
Leave a Comment