diff --git a/src/main/java/fil/sr2/flopbox/FTPResource.java b/src/main/java/fil/sr2/flopbox/FTPResource.java index eb95dc0500c12fee801a760674edd7e92feeebbe..480ac5fb0e10f66e6b1f8630da3ae9e02e17022e 100644 --- a/src/main/java/fil/sr2/flopbox/FTPResource.java +++ b/src/main/java/fil/sr2/flopbox/FTPResource.java @@ -65,7 +65,7 @@ public class FTPResource { List<String> urls = new ArrayList<>(); // Parcourir récursivement l’arborescence pour chercher le fichier (ou // répertoire) recherché - searchInTree(tree, searchTerm, "", config, urls); + ftpService.searchInTree(tree, searchTerm, "", config, urls); if (!urls.isEmpty()) { results.put(config.getAlias(), urls); } @@ -77,34 +77,6 @@ public class FTPResource { return Response.ok(results).build(); } - /** - * Recherche récursive dans l’arborescence FTP. - * - * @param node l’arborescence à parcourir - * @param searchTerm la chaîne à rechercher - * @param currentPath le chemin courant dans l’arborescence - * @param config la configuration du serveur FTP (pour construire l’URL) - * @param urls la liste des URLs trouvées - */ - private void searchInTree(FTPService.FtpNode node, String searchTerm, String currentPath, FTPServerConfig config, - List<String> urls) { - // Concaténation du chemin - String newPath = currentPath.isEmpty() ? node.name : currentPath + "/" + node.name; - // Si le nom contient le terme recherché (fichier ou dossier) - if (node.name.toLowerCase().contains(searchTerm.toLowerCase())) { - // Construction de l’URL FTP. On suppose que FTPServerConfig possède une méthode - // getHost(). - String ftpUrl = "ftp://" + config.getHost() + "/" + newPath; - urls.add(ftpUrl); - } - // Parcours des enfants si le nœud est un répertoire - if (node.isDirectory && node.children != null) { - for (FTPService.FtpNode child : node.children) { - searchInTree(child, searchTerm, newPath, config, urls); - } - } - } - @DELETE @Path("/{alias}") public Response removeFTPServer(@PathParam("alias") String alias) { diff --git a/src/main/java/fil/sr2/flopbox/FTPService.java b/src/main/java/fil/sr2/flopbox/FTPService.java index 7e7bcd2eccc7a8c99ef4c801bd8ba13396b91234..fa337b72c49e4042974891dc925a81cab87a2715 100644 --- a/src/main/java/fil/sr2/flopbox/FTPService.java +++ b/src/main/java/fil/sr2/flopbox/FTPService.java @@ -371,4 +371,32 @@ public class FTPService { } } } + + /** + * Recherche récursive dans l’arborescence FTP. + * + * @param node l’arborescence à parcourir + * @param searchTerm la chaîne à rechercher + * @param currentPath le chemin courant dans l’arborescence + * @param config la configuration du serveur FTP (pour construire l’URL) + * @param urls la liste des URLs trouvées + */ + public void searchInTree(FTPService.FtpNode node, String searchTerm, String currentPath, FTPServerConfig config, + List<String> urls) { + // Concaténation du chemin + String newPath = currentPath.isEmpty() ? node.name : currentPath + "/" + node.name; + // Si le nom contient le terme recherché (fichier ou dossier) + if (node.name.toLowerCase().contains(searchTerm.toLowerCase())) { + // Construction de l’URL FTP. On suppose que FTPServerConfig possède une méthode + // getHost(). + String ftpUrl = "ftp://" + config.getHost() + "/" + newPath; + urls.add(ftpUrl); + } + // Parcours des enfants si le nœud est un répertoire + if (node.isDirectory && node.children != null) { + for (FTPService.FtpNode child : node.children) { + searchInTree(child, searchTerm, newPath, config, urls); + } + } + } }