Example #1
0
def googledrive_folders(node_addon, user_addon, **kwargs):
    """ Returns all the subsequent folders under the folder id passed """
    node = kwargs.get('node') or kwargs['project']

    path = request.args.get('path', '')
    folder_id = request.args.get('folderId', 'root')

    try:
        access_token = user_addon.fetch_access_token()
    except exceptions.ExpiredAuthError:
        raise HTTPError(403)

    client = GoogleDriveClient(access_token)

    if folder_id == 'root':
        about = client.about()

        return [{
            'path': '/',
            'kind': rubeus.FOLDER,
            'id': about['rootFolderId'],
            'name': '/ (Full Google Drive)',
            'urls': {
                'folders': node.api_url_for('googledrive_folders', folderId=about['rootFolderId'])
            }
        }]

    contents = [
        to_hgrid(item, node, path=path)
        for item in client.folders(folder_id)
    ]

    return contents
Example #2
0
def googledrive_folder_list(node_addon, **kwargs):
    """ Returns all the subsequent folders under the folder id passed.
        Not easily generalizable due to `path` kwarg.
    """
    node = kwargs.get('node') or node_addon.owner

    path = request.args.get('path', '')
    folder_id = request.args.get('folderId', 'root')

    try:
        access_token = node_addon.fetch_access_token()
    except InvalidGrantError:
        raise HTTPError(403)

    client = GoogleDriveClient(access_token)

    if folder_id == 'root':
        about = client.about()

        return [{
            'path': '/',
            'kind': 'folder',
            'id': about['rootFolderId'],
            'name': '/ (Full Google Drive)',
            'urls': {
                'folders':
                node.api_url_for('googledrive_folder_list',
                                 folderId=about['rootFolderId'])
            }
        }]

    contents = [
        to_hgrid(item, node, path=path) for item in client.folders(folder_id)
    ]
    return contents
Example #3
0
def googledrive_folders(node_addon, **kwargs):
    """ Returns all the subsequent folders under the folder id passed """
    node = kwargs.get('node') or kwargs['project']

    path = request.args.get('path', '')
    folder_id = request.args.get('folderId', 'root')

    try:
        access_token = node_addon.fetch_access_token()
    except InvalidAuthError:
        raise HTTPError(403)

    client = GoogleDriveClient(access_token)

    if folder_id == 'root':
        about = client.about()

        return [{
            'path': '/',
            'kind': rubeus.FOLDER,
            'id': about['rootFolderId'],
            'name': '/ (Full Google Drive)',
            'urls': {
                'folders':
                node.api_url_for('googledrive_folders',
                                 folderId=about['rootFolderId'])
            }
        }]

    contents = [
        to_hgrid(item, node, path=path) for item in client.folders(folder_id)
    ]
    return contents
Example #4
0
def googledrive_folder_list(node_addon, **kwargs):
    """ Returns all the subsequent folders under the folder id passed.
        Not easily generalizable due to `path` kwarg.
    """
    node = kwargs.get('node') or node_addon.owner

    path = request.args.get('path', '')
    folder_id = request.args.get('folderId', 'root')

    try:
        access_token = node_addon.fetch_access_token()
    except InvalidAuthError:
        raise HTTPError(403)

    client = GoogleDriveClient(access_token)

    if folder_id == 'root':
        about = client.about()

        return [{
            'path': '/',
            'kind': 'folder',
            'id': about['rootFolderId'],
            'name': '/ (Full Google Drive)',
            'urls': {
                'folders': node.api_url_for('googledrive_folder_list', folderId=about['rootFolderId'])
            }
        }]

    contents = [
        to_hgrid(item, node, path=path)
        for item in client.folders(folder_id)
    ]
    return contents
Example #5
0
    def get_folders(self, **kwargs):
        node = self.owner

        #  Defaults exist when called by the API, but are `None`
        path = kwargs.get('path') or ''
        folder_id = kwargs.get('folder_id') or 'root'

        try:
            access_token = self.fetch_access_token()
        except exceptions.InvalidAuthError:
            raise HTTPError(403)

        client = GoogleDriveClient(access_token)
        if folder_id == 'root':
            about = client.about()

            return [{
                'addon': self.config.short_name,
                'path': '/',
                'kind': 'folder',
                'id': about['rootFolderId'],
                'name': '/ (Full Google Drive)',
                'urls': {
                    'folders':
                    api_v2_url('nodes/{}/addons/googledrive/folders/'.format(
                        self.owner._id),
                               params={
                                   'path': '/',
                                   'id': about['rootFolderId']
                               })
                }
            }]

        contents = [
            to_hgrid(item, node, path=path)
            for item in client.folders(folder_id)
        ]
        return contents
Example #6
0
    def get_folders(self, **kwargs):
        node = self.owner

        #  Defaults exist when called by the API, but are `None`
        path = kwargs.get('path') or ''
        folder_id = kwargs.get('folder_id') or 'root'

        try:
            access_token = self.fetch_access_token()
        except exceptions.InvalidAuthError:
            raise HTTPError(403)

        client = GoogleDriveClient(access_token)
        if folder_id == 'root':
            about = client.about()

            return [{
                'addon': self.config.short_name,
                'path': '/',
                'kind': 'folder',
                'id': about['rootFolderId'],
                'name': '/ (Full Google Drive)',
                'urls': {
                    'folders': api_v2_url('nodes/{}/addons/googledrive/folders/'.format(self.owner._id),
                        params={
                            'path': '/',
                            'id': about['rootFolderId']
                    })
                }
            }]

        contents = [
            to_hgrid(item, node, path=path)
            for item in client.folders(folder_id)
        ]
        return contents