def delete(self, node_id): exam = Exam.get(Exam.node_id == node_id) os.remove('uploads/' + exam.json_file) exam.delete_instance() return f"Deleted ID {exam.id}."
def put(self, node_id): parser = reqparse.RequestParser() parser.add_argument('name', required=False) parser.add_argument('description', required=False) parser.add_argument('roles', type=str, required=False) parser.add_argument('time', type=int, required=False) parser.add_argument('attempts', type=int, required=False) parser.add_argument('file', location='files', required=False, type=werkzeug.datastructures.FileStorage) parser.add_argument('locked', required=False, type=int) exam = Exam.get(Exam.node_id == node_id) args = parser.parse_args() if args['locked'] is not None: exam.locked = args['locked'] else: exam.name = args['name'] exam.description = args['description'] exam.time = args['time'] exam.attempts = args['attempts'] exam.roles = args['roles'].strip(",").replace(" ", "") file = args['file'] if file is not None: # Check if file exists, rename if so filename = werkzeug.utils.secure_filename(file.filename) if os.path.isfile(f'uploads/{filename}'): filename = str(int( datetime.now().timestamp())) + "-" + filename exam.json_file = filename file.save(f"uploads/{filename}") exam.save() return exam