コード例 #1
0
ファイル: project.py プロジェクト: wajones98/fyp
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
コード例 #2
0
ファイル: project.py プロジェクト: wajones98/fyp
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)
コード例 #3
0
ファイル: project.py プロジェクト: wajones98/fyp
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)
コード例 #4
0
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)
コード例 #5
0
ファイル: search.py プロジェクト: wajones98/fyp
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)
コード例 #6
0
ファイル: institution.py プロジェクト: wajones98/fyp
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)
コード例 #7
0
ファイル: institution.py プロジェクト: wajones98/fyp
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)
コード例 #8
0
ファイル: institution.py プロジェクト: wajones98/fyp
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)
コード例 #9
0
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)
コード例 #10
0
ファイル: project.py プロジェクト: wajones98/fyp
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)
コード例 #11
0
ファイル: search.py プロジェクト: wajones98/fyp
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)
コード例 #12
0
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
コード例 #13
0
ファイル: institution.py プロジェクト: wajones98/fyp
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)
コード例 #14
0
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)
コード例 #15
0
ファイル: project.py プロジェクト: wajones98/fyp
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)
コード例 #16
0
ファイル: project.py プロジェクト: wajones98/fyp
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
コード例 #17
0
ファイル: institution.py プロジェクト: wajones98/fyp
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)