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
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
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
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
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
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