fix for file.list api pagination
This commit is contained in:
@ -3,7 +3,7 @@ from abc import ABC, abstractmethod
|
||||
from typing import Any
|
||||
from unicodedata import normalize
|
||||
|
||||
from mdrsclient.api import FoldersApi, LaboratoriesApi
|
||||
from mdrsclient.api import FilesApi, FoldersApi, LaboratoriesApi
|
||||
from mdrsclient.config import ConfigFile
|
||||
from mdrsclient.connection import MDRSConnection
|
||||
from mdrsclient.exceptions import (
|
||||
@ -12,7 +12,8 @@ from mdrsclient.exceptions import (
|
||||
UnauthorizedException,
|
||||
UnexpectedException,
|
||||
)
|
||||
from mdrsclient.models import Folder, Laboratory
|
||||
from mdrsclient.models import File, Folder, Laboratory
|
||||
from mdrsclient.utils import page_num_from_url
|
||||
|
||||
|
||||
class BaseCommand(ABC):
|
||||
@ -52,6 +53,19 @@ class BaseCommand(ABC):
|
||||
folder_api.auth(folders[0].id, password)
|
||||
return folder_api.retrieve(folders[0].id)
|
||||
|
||||
@classmethod
|
||||
def _find_files(cls, connection: MDRSConnection, folder_id: str) -> list[File]:
|
||||
files_api = FilesApi(connection)
|
||||
page = 1
|
||||
results_file = []
|
||||
while page:
|
||||
result = files_api.list(folder_id, page)
|
||||
results_file.extend(result.results)
|
||||
page = 0
|
||||
if result.next:
|
||||
page = page_num_from_url(result.next)
|
||||
return results_file
|
||||
|
||||
@classmethod
|
||||
def _parse_remote_host(cls, path: str) -> str:
|
||||
path_array = path.split(":")
|
||||
|
Reference in New Issue
Block a user