diff --git a/.gitignore b/.gitignore index 3f6febc1..a0a9bbb5 100644 --- a/.gitignore +++ b/.gitignore @@ -104,4 +104,6 @@ ENV/ .vscode/ # SQLite data -flask-backend/api/db.sqlite3 \ No newline at end of file +flask-backend/api/db.sqlite3 + +data/ \ No newline at end of file diff --git a/flask-backend/api/routes/case.py b/flask-backend/api/routes/case.py index 0141b75e..708cf5a8 100644 --- a/flask-backend/api/routes/case.py +++ b/flask-backend/api/routes/case.py @@ -12,10 +12,15 @@ case = Blueprint('case', __name__, url_prefix='/case') +dirname = os.path.dirname(__file__) +cases_data_path = os.path.join(dirname, '../../../data/') + + @case.route('/count', methods=["GET"]) def count(): - return jsonify({'status':200, - 'total_users':Case.query.count()}) + return jsonify({'status': 200, + 'total_users': Case.query.count()}) + @case.route('/list', methods=["GET"]) def list(): @@ -23,6 +28,7 @@ def list(): result = cases_schema.dump(all_cases) return jsonify(result) + @case.route('/delete', methods=['POST']) def deletecase(): # check if case_name is provided @@ -41,25 +47,50 @@ def deletecase(): db.session.commit() return 'case deleted', 202 + @case.route('/open/', methods=["GET"]) def openCase(case_name): - os.chdir('../../..') - path = os.getcwd()+'/data/'+case_name - os.chdir(ROOT_DIR) - files = os.listdir(path) - return files + try: + os.chdir('../../..') + path = cases_data_path + case_name + os.chdir(ROOT_DIR) + files = os.listdir(path) + except FileNotFoundError as err: + response = { + 'success': False, + 'msg': 'Case with that name does not exist', + } + return jsonify(response), 404 + response = { + 'success': True, + 'data': files, + } + return jsonify(response), 200 + @case.route('/list-files//', methods=["GET"]) def openFolder(case_name, folder_name): - os.chdir('../../..') - path = os.getcwd()+'/data/'+case_name+'/'+folder_name - os.chdir(ROOT_DIR) - files = os.listdir(path) - return files + try: + os.chdir('../../..') + path = cases_data_path + case_name + '/' + folder_name + os.chdir(ROOT_DIR) + files = os.listdir(path) + except FileNotFoundError: + response = { + 'success': False, + 'msg': 'Folder does not exist', + } + return jsonify(response), 404 + response = { + 'success': True, + 'data': files, + } + return jsonify(response), 200 + @case.route('/list-files///', methods=["GET"]) def openFile(case_name, folder_name, file_name): os.chdir('../../..') - File = os.getcwd()+'/data/'+case_name+'/'+folder_name+'/'+file_name + file = cases_data_path + case_name + '/' + folder_name + '/' + file_name os.chdir(ROOT_DIR) - return File \ No newline at end of file + return file