def get_queryset(self): query_params = self.request.query_params addons = self.get_node().get_addons() user = self.request.user cookie = None if self.request.user.is_anonymous( ) else user.get_or_create_cookie() node_id = self.get_node()._id obj_args = self.request.parser_context['args'] provider = query_params.get('provider') path = query_params.get('path', '/') files = [] if provider is None: valid_self_link_methods = self.get_valid_self_link_methods(True) for addon in addons: if addon.config.has_hgrid_files: files.append({ 'valid_self_link_methods': valid_self_link_methods['folder'], 'provider': addon.config.short_name, 'name': addon.config.short_name, 'path': path, 'node_id': node_id, 'cookie': cookie, 'args': obj_args, 'waterbutler_type': 'file', 'item_type': 'folder', 'metadata': {}, }) else: url = waterbutler_url_for('data', provider, path, self.kwargs['node_id'], cookie, obj_args) waterbutler_request = requests.get(url) if waterbutler_request.status_code == 401: raise PermissionDenied try: waterbutler_data = waterbutler_request.json()['data'] except KeyError: raise ValidationError( detail='detail: Could not retrieve files information.') if isinstance(waterbutler_data, list): for item in waterbutler_data: file = self.get_file_item(item, cookie, obj_args) files.append(file) else: files.append( self.get_file_item(waterbutler_data, cookie, obj_args)) return files
def get_queryset(self): query_params = self.request.query_params addons = self.get_node().get_addons() user = self.request.user cookie = None if self.request.user.is_anonymous() else user.get_or_create_cookie() node_id = self.get_node()._id obj_args = self.request.parser_context['args'] provider = query_params.get('provider') path = query_params.get('path', '/') files = [] if provider is None: valid_self_link_methods = self.get_valid_self_link_methods(True) for addon in addons: if addon.config.has_hgrid_files: files.append({ 'valid_self_link_methods': valid_self_link_methods['folder'], 'provider': addon.config.short_name, 'name': addon.config.short_name, 'path': path, 'node_id': node_id, 'cookie': cookie, 'args': obj_args, 'waterbutler_type': 'file', 'item_type': 'folder', 'metadata': {}, }) else: url = waterbutler_url_for('data', provider, path, self.kwargs['node_id'], cookie, obj_args) waterbutler_request = requests.get(url) if waterbutler_request.status_code == 401: raise PermissionDenied try: waterbutler_data = waterbutler_request.json()['data'] except KeyError: raise ValidationError(detail='detail: Could not retrieve files information.') if isinstance(waterbutler_data, list): for item in waterbutler_data: file = self.get_file_item(item, cookie, obj_args) files.append(file) else: files.append(self.get_file_item(waterbutler_data, cookie, obj_args)) return files
def resolve_url(self, obj): """Reverse URL lookup for WaterButler routes """ return waterbutler_url_for(obj['waterbutler_type'], obj['provider'], obj['path'], obj['node_id'], obj['cookie'], obj['args'])
def resolve_url(self, obj): """Reverse URL lookup for WaterButler routes """ return waterbutler_url_for( obj["waterbutler_type"], obj["provider"], obj["path"], obj["node_id"], obj["cookie"], obj["args"] )