def project_file_history(): if request.method == 'POST': response = User.get_user_from_session(request.headers.get('SessionId')) if response['Status'] == 200: info = request.get_json() return Project.get_file_history(info['FileId'], info['ProjectId']) return response
def project_add(): if request.method == 'POST': response = User.get_user_from_session(request.headers.get('SessionId')) if response['Status'] == 200: info = request.get_json() return Project.add_dataset_to_project(response['Message'], info) return json.dumps(response)
def project_leave(): if request.method == 'POST': response = User.get_user_from_session(request.headers.get('SessionId')) if response['Status'] == 200: return Project.leave_project(response['Message'], request.get_json()['ProjectId']) return json.dumps(response)
def upload_change_obj(): if request.method == 'POST': response = UserModel.get_user_from_session( request.headers.get('SessionId')) if response['Status'] == 200: submitted_file = request.files['file'] file_obj = FileModel(submitted_file) file_valid_response = file_obj.check_file_extension() if file_valid_response['Status'] == 200: file_obj.upload_file_landing() file_path = file_obj.upload_file_s3() file_obj.delete_file_landing() if file_path is not None: response = { 'Status': 201, 'Filepath': file_path, 'Message': 'Successfully uploaded' } else: response = { 'Status': 201, 'FileName': file_obj.file_name, 'Message': 'Could not upload file' } return json.dumps(response)
def download_file(): if request.method == 'POST': response = UserModel.get_user_from_session(request.headers.get('SessionId')) if response['Status'] == 200: json_query = request.get_json() return FileModel.download_file_s3(json_query['File']) return json.dumps(response)
def institution_remove(): if request.method == 'POST': response = User.get_user_from_session(request.headers.get('SessionId')) if response['Status'] == 200: remove_info = request.get_json() return Institution.remove_member(response['Message'], remove_info['Email']) return json.dumps(response)
def institution_invite(): if request.method == 'POST': response = User.get_user_from_session(request.headers.get('SessionId')) if response['Status'] == 200: invitation_info = request.get_json() return Institution.invite_member(response['Message'], invitation_info) return json.dumps(response)
def institution_join(): if request.method == 'POST': response = User.get_user_from_session(request.headers.get('SessionId')) if response['Status'] == 200: institution_invitation = request.get_json() return Institution.accept_pending_invite( response['Message'], institution_invitation['InstitutionId']) return json.dumps(response)
def upload_change_metadata(): if request.method == 'POST': response = UserModel.get_user_from_session( request.headers.get('SessionId')) if response['Status'] == 200: file_info = request.get_json() return Upload.file_history_insert(response['Message'], file_info) return json.dumps(response)
def project_public(): if request.method == 'POST': response = User.get_user_from_session(request.headers.get('SessionId')) if response['Status'] == 200: project_info = request.get_json() return Project.make_public_or_private(project_info['ProjectId'], project_info['Mode']) return json.dumps(response)
def search_for(): if request.method == 'POST': response = UserModel.get_user_from_session(request.headers.get('SessionId')) if response['Status'] == 200: search_type = None if 'Private' in request.headers: search_type = request.headers.get('Private') search_builder = SearchModel(request.get_json(), search_type) return search_builder.execute_search() return json.dumps(response)
def upload_files(): if request.method == 'POST': response = UserModel.get_user_from_session( request.headers.get('SessionId')) if response['Status'] == 200: submitted_files = request.files dataset_id = generate_unique_identifier() response = {'Status': 201, 'DataSetId': dataset_id, 'Files': []} for file in submitted_files.keys(): file_id = generate_unique_identifier() file_obj = FileModel(submitted_files[file]) file_valid_response = file_obj.check_file_extension() if file_valid_response['Status'] == 200: file_obj.upload_file_landing() file_path = file_obj.upload_dataset_file_s3( dataset_id, file_id) if file_path is not None: file_obj.delete_file_landing() response['Files'].append({ 'FileId': file_id, 'FileName': file_obj.file_name, 'Message': 'Successfully uploaded' }) else: response['Files'].append({ 'FileId': file_id, 'FileName': file_obj.file_name, 'Message': 'Could not upload to S3' }) else: response['Files'].append({ 'Status': file_valid_response['Status'], 'FileId': file_id, 'Message': file_valid_response['Message'] }) return json.dumps(response) else: return response
def institution_create(): if request.method == 'POST': response = User.get_user_from_session(request.headers.get('SessionId')) if response['Status'] == 200: user = User.get_user_info(response['Message']) if user.get_institution() is None: institution_info = request.get_json() institution_model = Institution() institution_model.set_name(institution_info['Name']) institution_model.set_desc(institution_info['Desc']) institution_model.set_owner(response['Message']) return Institution.create_institution(institution_model) return { 'Status': 400, 'Message': 'Member already part of an institution' } return json.dumps(response)
def upload_metadata(): if request.method == 'POST': response = UserModel.get_user_from_session( request.headers.get('SessionId')) if response['Status'] == 200: user_id = response['Message'] content = request.get_json() dataset_id = content['DataSetId'] response = Upload.create_dataset_metadata(dataset_id, content['DataSetName']) if response['Status'] in (200, 201): for key in content['Tags'].keys(): Upload.upload_tags(dataset_id, key, content['Tags'].get(key)) file_responses = [] for file_id in content['Files'].keys(): metadata = Upload(file_id, content['Files'].get(file_id), user_id, content) file_responses.append(metadata.upload_file_metadata()) response['Files'] = file_responses return json.dumps(response)
def project_invite(): if request.method == 'POST': response = User.get_user_from_session(request.headers.get('SessionId')) if response['Status'] == 200: return Project.invite_to_project(request.get_json()) return json.dumps(response)
def project_get(): if request.method == 'GET': response = User.get_user_from_session(request.headers.get('SessionId')) if response['Status'] == 200: return Project.get_users_projects(response['Message']) return response
def institution_leave(): if request.method == 'POST': response = User.get_user_from_session(request.headers.get('SessionId')) if response['Status'] == 200: return Institution.member_leave(response['Message']) return json.dumps(response)