Source code for controllers.homeworks

import json
import requests
from flask import request
from server import app
from models.setupdb import student_model, homeworks, hwOnSt
from middlewares import auth_func

private_route = auth_func(student_model)


[docs]@app.route('/api/homeworks', methods=['GET', 'POST', 'PUT', 'DELETE']) @private_route def homework(student): """ GET Request returns a JSON containing the homeworks of student\n POST Request adds a new homework to student. Return a JSON containing the homeworks of student including new added\n PUT Request alters the homework's information\n DELETE Request removes homework from student """ if request.method == 'GET': return json.dumps(hwOnSt.showHomeworks(data=student["id"])) elif request.method == 'POST': data = request.get_json() data.update({"created_by": student["id"]}) homeworks.addHomework(data) lastHomeworkCreatedBy = str((homeworks.getLastHwCreatedById( data=data["created_by"])[0])["id"]) hwOnSt.addHomeworkOfStudent({"student_id": student["id"], "homework_id": lastHomeworkCreatedBy}) return json.dumps(hwOnSt.showHomeworks(data=student["id"])) elif request.method == 'PUT': data = request.get_json() hwid = data["homework_id"] del data["homework_id"] return json.dumps(homeworks.changeHomework(hwid=hwid, data=data)) elif request.method == 'DELETE': data = request.get_json() data["sid"] = student["id"] # return json.dumps(data) hwOnSt.removeStudentsHomework(data=data) return "Success", 200 else: return "Wrong request", 301