Le service Folder expose toutes les opérations disponibles autour des composants de type FOLDER.
Récupération de dossier
Les exemples ci-dessous indiquent comment récupérer des dossiers à partir d’une liste d’identifiants.
# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
# <IDS> : liste des identifiants de dossiers à récupérer
curl -X GET "<CORE_HOST>/rest/folders/<IDS>" \
-H "token: <TOKEN>"
@Autowired
private FolderService folderService;
public List<Folder> get() throws TechnicalException, FunctionalException
{
List<Id> ids = Lists.newArrayList(new Id("folderId"));
return folderService.get(ids);
}
Création de dossier
Les exemples ci-dessous indiquent comment créer une liste de dossiers.
# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
curl -X POST "<CORE_HOST>/rest/folders" \
-H "token: <TOKEN>" \
-H "Content-Type: application/json" \
-d '[
{
"category": "FOLDER",
"data": {
"ACL": "acl-dossier",
"classId": "ClasseDossier",
"owner": "jna"
},
"name": "Mon dossier",
"tags": [
{
"name": "RefDossier",
"readOnly": false,
"value": [
"REF-001"
]
},
{
"name": "Description",
"readOnly": false,
"value": [
"Exemple de dossier"
]
}
]
}
]'
@Autowired
private FolderService folderService;
public List<Folder> create() throws FunctionalException, TechnicalException
{
Folder folder = ComponentBuilder.component(Category.FOLDER).name("Mon dossier")
.classId(new Id("ClasseDossier")).acl("acl-dossier").build();
folder.getData().setOwner("jna");
folder.setTags(new Tags());
folder.getTags().getTags().add(TagBuilder.name("RefDossier").value("REF-001").build());
folder.getTags().getTags().add(TagBuilder.name("Description").value("Exemple de dossier").build());
return folderService.create(Arrays.asList(folder));
}
Modification de dossier
Cette opération permet de mettre à jour les données d’un dossier : tags et data (identifiant de la classe, ACL, owner …).
# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
# <IDS> : liste des identifiants de dossiers à mettre à jour
curl -X POST "<CORE_HOST>/rest/folders/<IDS>" \
-H "token: <TOKEN>" \
-H "Content-Type: application/json" \
-d '[
{
"category": "FOLDER",
"data": {
"ACL": "acl-dossier",
"classId": "ClasseDossier",
"owner": "jna"
},
"name": "Mon dossier modifié",
"tags": [
{
"name": "RefDossier",
"readOnly": false,
"value": [
"REF-001"
]
},
{
"name": "Description",
"readOnly": false,
"value": [
"Description modifiée"
]
}
]
}
]'
@Autowired
private FolderService folderService;
public List<Folder> update(Folder folder) throws FunctionalException, TechnicalException
{
folder.setName("Mon dossier modifié");
folder.getData().setACL(new Id("acl-dossier"));
folder.getData().setClassId(new Id("ClasseDossier"));
ComponentHelper.setTagValue(folder, "Description", "Description modifiée");
return folderService.update(Arrays.asList(folder));
}
Recherche de dossier
Les opérations de recherche fonctionnent toutes sur le même modèle décrit ici.
Suppression de dossier
Les exemples ci-dessous indiquent comment supprimer une liste de dossiers à partir d’une liste d’identifiants.
# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
# <IDS> : liste des identifiants de dossiers à supprimer
curl -X DELETE "<CORE_HOST>/rest/folders/<IDS>" \
-H "token: <TOKEN>"
@Autowired
private FolderService folderService;
public void delete() throws FunctionalException, TechnicalException
{
List<Id> ids = Lists.newArrayList(new Id("folderId"));
folderService.delete(ids);
}
Gestion des enfants
Les dossiers peuvent contenir des enfants (documents, tâches ou autres dossiers). Les opérations suivantes permettent de gérer les enfants d’un dossier.
Ajout d’enfants
Cette opération ajoute des enfants à un dossier sans supprimer les enfants existants.
# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
# <ID> : identifiant du dossier
curl -X PUT "<CORE_HOST>/rest/folders/<ID>/children" \
-H "token: <TOKEN>" \
-H "Content-Type: application/json" \
-d '[
{
"id": "documentId1",
"category": "DOCUMENT"
},
{
"id": "taskId1",
"category": "TASK"
}
]'
@Autowired
private FolderService folderService;
public void addChildren() throws FunctionalException, TechnicalException
{
Id folderId = new Id("folderId");
List<ComponentReference> children = new ArrayList<>();
children.add(new ComponentReference(new Id("documentId1"), Category.DOCUMENT));
children.add(new ComponentReference(new Id("taskId1"), Category.TASK));
folderService.addChildren(folderId, children);
}
Remplacement des enfants
Cette opération remplace tous les enfants existants par la liste fournie.
# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
# <ID> : identifiant du dossier
curl -X POST "<CORE_HOST>/rest/folders/<ID>/children" \
-H "token: <TOKEN>" \
-H "Content-Type: application/json" \
-d '[
{
"id": "documentId1",
"category": "DOCUMENT"
},
{
"id": "documentId2",
"category": "DOCUMENT"
}
]'
@Autowired
private FolderService folderService;
public void replaceChildren() throws FunctionalException, TechnicalException
{
Id folderId = new Id("folderId");
List<ComponentReference> children = new ArrayList<>();
children.add(new ComponentReference(new Id("documentId1"), Category.DOCUMENT));
children.add(new ComponentReference(new Id("documentId2"), Category.DOCUMENT));
folderService.replaceChildren(folderId, children);
}
Suppression d’enfants
Cette opération supprime des enfants spécifiques d’un dossier.
# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
# <ID> : identifiant du dossier
curl -X DELETE "<CORE_HOST>/rest/folders/<ID>/children" \
-H "token: <TOKEN>" \
-H "Content-Type: application/json" \
-d '[
{
"id": "documentId1",
"category": "DOCUMENT"
}
]'
@Autowired
private FolderService folderService;
public void removeChildren() throws FunctionalException, TechnicalException
{
Id folderId = new Id("folderId");
List<ComponentReference> children = new ArrayList<>();
children.add(new ComponentReference(new Id("documentId1"), Category.DOCUMENT));
folderService.deleteChildren(folderId, children);
}