Untitled
unknown
python
6 months ago
3.1 kB
3
Indexable
import uuid from flask import Flask, request, abort from db import specializations, course_items app = Flask(__name__) @app.get("/course_item/<string:course_item_id>") def get_course_item(course_item_id): try: return course_items[course_item_id] except KeyError: abort(404, message="Course_item not found.") @app.post("/course_item") def create_course_item(): 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 @app.delete("/course_item/<string:course_item_id>") def delete_course_item(course_item_id): try: del course_items[course_item_id] return {"message": "Course_item deleted."} except KeyError: abort(404, message="Course_item not found.") @app.put("/course_item/<string:course_item_id>") def update_course_item(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.") @app.get("/course_item") def get_all_course_items(): return {"course_items": list(course_items.values())} @app.get("/specialization/<string:specialization_id>") def get_specialization(specialization_id): try: # Here you might also want to add the course_items in this specialization # We'll do that later on in the course return specializations[specialization_id] except KeyError: abort(404, message="Specialization not found.") @app.post("/specialization") def create_specialization(): specialization_data = request.get_json() if "name" not in specialization_data: abort( 400, message="Bad request. Ensure 'name' is included in the JSON payload.", ) for specialization in specializations.values(): if specialization_data["name"] == specialization["name"]: abort(400, message=f"Specialization already exists.") specialization_id = uuid.uuid4().hex specialization = {**specialization_data, "id": specialization_id} specializations[specialization_id] = specialization return specialization @app.delete("/specialization/<string:specialization_id>") def delete_specialization(specialization_id): try: del specializations[specialization_id] return {"message": "Specialization deleted."} except KeyError: abort(404, message="Specialization not found.") @app.get("/specialization") def get_specializations(): return {"specializations": list(specializations.values())}
Editor is loading...
Leave a Comment