Manipuler un document

Créez, modifiez, supprimez vos documents

Le service Document expose toutes les opérations disponibles autour des composants de type DOCUMENT.

Récupération de document

Les exemples ci-dessous indiquent comment récupérer des documents en utilisant les différentes opérations de get.

Récupération de document


GET {{core}}/rest/documents/{ids} HTTP/1.1

-- Paramètres d'URL
core: host de FlowerDocs core
ids: identifiant des documents à récupérer

-- Headers --
token: {{token}}
Content-Type: application/json

@Autowired
private DocumentService service;

public List<Document> get() throws FunctionalException, TechnicalException
{
    List<Id> ids = Lists.newArrayList(new Id("documentId"));
    return service.get(ids);
}

Récupération des fichiers associés

Ce service permet de récupérer les fichiers associés au document dont l’identifiant est passé en entrée :

  • le contenu : includeContent = true
  • les fichiers : includeContent = false

GET {{core}}/rest/documents/{id}/files?includeContent={includeContent} HTTP/1.1

-- Paramètres d'URL --
core : host de FlowerDocs core
id: identifiant du document
includeContent: true ou false pour récupération du contenu

-- Headers --
token: {{token}}
includeContent: {{inclut le contenu}}
Content-Type: application/json

@Autowired
private DocumentService service;

public List<DocumentFile> get() throws FunctionalException, TechnicalException
{
    Boolean includeContent = false;
    return service.getFiles(new Id("documentId"), includeContent);
}

Création de document

Les exemples ci-dessous indiquent comment créer des documents en utilisant l’opération suivante.


POST {{core}}/rest/documents/ HTTP/1.1

-- Paramètres d'URL --
core: host de FlowerDocs core

-- Headers --
token: {{token}}
Content-Type: application/json

-- Body (json) --
[
    {
        "data": {
            "classId": "Document"
        },
        "category": "DOCUMENT",
        "name": "D1"
    }
]

@Autowired
private DocumentService service;

public List<Document> create() throws FunctionalException, TechnicalException
{
    List<Document> documents = new ArrayList();
    Document document = new Document();
    document.setId(new Id("testId"));
    ComponentData data = new ComponentData();
    data.setClassId(new Id("ENV_Document"));
    document.setData(data);
    Tags tags = new Tags();
    tags.getTags().add(new Tag(Arrays.asList("C0012"), "B_RefClient", false));
    tags.getTags().add(new Tag(Arrays.asList("Fournisseur 12"), "B_NomClient", false));
    tags.getTags().add(new Tag(Arrays.asList("RIB"), "B_TypeDocument", false));
    document.setTags(tags);  
    documents.add(document);
    return service.create(documents);
}

Modification de document

Les exemples ci-dessous indiquent comment mettre à jour des documents.

Modification des données

Cette opération permet de mettre à jour les données d’un document : tags et data (identifiant de la classe, nom du document, ACL …) mais aussi son contenu.


Ce service fonctionne en annule et remplace, l’ensemble des contenus et des valeurs de tags doit donc être fourni par le service au moment de la mise à jour. Il est donc préconisé de réaliser une récupération du document, effectuer les modifications et faire l’appel au service de mise à jour.


POST {{core}}/rest/documents/{id} HTTP/1.1

-- Paramètres d'URL --
core: host de FlowerDocs core
id: identifiant du document

-- Headers --
token: {{token}}
Content-Type: application/json

-- Body (json) --
[
    {
        "files": [
          {
            "id": "98c1f765-7595-46c3-8f4a-b75bd7c25ff7",
            "size": 0
          }
        ],
        "data": {
            "classId": "Document"
        },
        "category": "DOCUMENT",
        "name": "D2"
    }
]

@Autowired
private DocumentService service;

public List<Document> update(Document document) throws FunctionalException, TechnicalException
{
    List<Document> documents = new ArrayList();
    tags.getTags().add(new Tag(Arrays.asList("Contrat"), "B_TypeDocument", false));
    document.setTags(tags);  
    documents.add(document);
    return service.update(documents);
}

Ajout de fichier

Cette opération permet d’ajouter un contenu à un document

  • replace : permet de remplacer le fichier existant par le nouveau contenu

POST {{core}}/rest/documents/{id}/files?replace={replace} HTTP/1.1

-- Paramètres d'URL --
core: host de FlowerDocs core
replace: true ou false pour remplacer le contenu

-- Headers --
token: {{token}}
Content-Type: multipart/form-data

-- Body (form-data) --
file (type file): fichier à importer


@Autowired
private DocumentService service;

public List<Document> addContent(Document document) throws FunctionalException, TechnicalException
{
    List<DocumentFile> files = new ArrayList<DocumentFile>();
    DocumentFile file = new DocumentFile();
    file.setId(new Id("MyFile"));
    file.setContent(new DataHandler(new FileDataSource(File.createTempFile("/tmp", ".txt"))));
    files.add(file);
    return service.addFiles(new Id("sampleDoc"), files, false);
}

Recherche de document

Les opérations de recherche fonctionnent toutes sur le même modèle décrit ici.

Suppression de document

Les exemples ci-dessous indiquent comment supprimer des documents.

Suppression de document

Cette opération permet de supprimer le document ainsi que les fichiers associés.


DELETE {{core}}/rest/documents/{ids} HTTP/1.1

-- Paramètres d'URL --
core: host de FlowerDocs core
ids: identifiants des documents à supprimer

-- Header -- 
token: {{token}}
Content-Type: application/json

@Autowired
private DocumentService service;

public void delete() throws FunctionalException, TechnicalException
{
    List<Id> ids = Lists.newArrayList(new Id("sample_doc"));
    service.delete(ids);
}

Suppression de fichier

Cette opération permet de supprimer un fichier.


DELETE /rest/documents/{documentId}/files/{fileId} HTTP/1.1

-- Paramètres d'URL --
Host: {{core}}
documentId: identifiant du document
fileId: identifiant du contenu à supprimer

-- Headers -- 
token: {{token}}
Content-Type: application/json

@Autowired
private DocumentService service;

public void delete() throws FunctionalException, TechnicalException
{
    List<Id> fileIds = Lists.newArrayList(new Id("sample_doc"));
    service.deleteFiles(documentId, fileIds);
}

Contenu

Récupération d’un contenu

Ce service permet de récupérer le contenu associé au fichier dont l’identifiant est passé en entrée :

  • avec ou sans les obfuscations en fonction du paramètre includeObfuscations

GET {{core}}/rest/documents/{documentId}/files/{fileId}/content?includeObfuscations={includeObfuscations} HTTP/1.1

-- Paramètres d'URL --
core: host de FlowerDocs core
documentId: identifiant du document
fileId: identifiant du contenu
includeObfuscations: true ou false pour inclure les obfuscations

-- Headers --
token: {{token}}
Content-Type: application/json

@Autowired
private DocumentService service;

public List<DocumentFile> get() throws FunctionalException, TechnicalException
{
    Boolean includeContent = false;
    return service.getFile(new Id("documentId"), new Id("fileId"), includeContent);
}

Indexer le contenu d’un document

Ce service permet d’indexer le contenu passé en paramètre et associé à l’identifiant de fichier.


POST {{core}}/rest/documents/{documentId}/files/{fileId}/content/index HTTP/1.1

-- Paramètres d'URL --
core: host de FlowerDocs core
documentId: identifiant du document
fileId: identifiant du contenu

-- Headers --
token: {{token}}
Content-Type: application/json

-- Body (text) --
Contenu du document


    @Autowired
    private DocumentContentService service;
    
    public Id addContent() throws FunctionalException, TechnicalException
    {
        return service.index(new Id("documentId"), new Id("fileId"), "File contents");
    }

Supprimer l’indexation de contenu d’un document

Ce service permet de supprimer l’indexation du contenu associé à un document.


DELETE {{core}}/rest/documents/{documentId}/files/{fileId}/content/index HTTP/1.1

-- Paramètres d'URL --
core: host de FlowerDocs core
documentId: identifiant du document
fileId: identifiant du contenu

-- Headers --
token: {{token}}
Content-Type: application/json

    @Autowired
    private DocumentContentService service;
    
    public void removeContent() throws FunctionalException, TechnicalException
    {
        service.deindex(new Id("documentId"), new Id("fileId"));
    }


Ce service supprime l’indexation de l’ensemble des fichiers associés au document.