Le service DocumentClassService expose toutes les opérations disponibles autour des composants de type DocumentClass.
Récupération des classes de documents
Récupération de toutes les classes de documents
Les exemples ci-dessous indiquent comment récupérer toutes les classes de documents.
GET {{core}}/rest/documentclass HTTP/1.1
-- Paramètre d'URL -- 
core: host de FlowerDocs core
-- Headers -- 
token: {{token}}
    @Autowired
    private DocumentClassService docClassService;
    public List<DocumentClass> getAllDocumentClass() throws FunctionalException, TechnicalException
    {
        return docClassService.getAll();
    }
Récupération d’une liste définie de classes de documents
Les exemples ci-dessous indiquent comment récupérer une liste de classes de documents à partir de leurs identifiants.
GET {{core}}/rest/documentclass/{ids} HTTP/1.1
-- Paramètre d'URL -- 
core: host de FlowerDocs core
ids: liste d'identifiants de classes de documents
-- Headers -- 
token: {{token}}
    @Autowired
    private DocumentClassService docClassService;
    public List<DocumentClass> getDocumentClasses() throws FunctionalException, TechnicalException
    {
        List<Id> docClassesIds = Lists.newArrayList(new Id("docClassId"));
        docClassesIds.add(new Id("docClass2Id"));
        return docClassService.get(docClassesIds);
    }
Création de classes de documents
Les exemples ci-dessous indiquent comment créer une classe de documents.
POST {{core}}/rest/documentclass HTTP/1.1
-- Paramètre d'URL -- 
core: host de FlowerDocs core
-- Headers -- 
token: {{token}}
Content-Type: application/json
-- Body (json) --
[
    {
        "id": "CourrierTest",
        "data": {
            "owner": "fadmin",
            "creationDate": "2024-03-07 1353.401 +0100",
            "lastUpdateDate": "2024-03-07 1353.401 +0100",
            "ACL": "acl-courrier"
        },
        "tagCategories": [
            "InfoCourrier",
            "InfoClient"
        ],
        "tagReferences": [
            {
                "tagName": "RefClient",
                "mandatory": false,
                "multivalued": false,
                "technical": false,
                "readonly": false,
                "order": 0,
                "descriptions": [
                    {
                        "value": "Internal customer reference allowing to classify it",
                        "language": "EN"
                    },
                    {
                        "value": "Référence interne du client permettant de faire le lien avec son dossier",
                        "language": "FR"
                    }
                ]
            }
        ],
        "displayNames": [
            {
                "value": "Courrier Test",
                "language": "FR"
            }
        ],
        "descriptions": [
            {
                "value": "Test Document issu d'une chaîne d'acquisition",
                "language": "FR"
            }
        ],
        "RetentionDuration": {
            "value": 0,
            "unit": "MONTH"
        },
        "category": "DOCUMENT",
        "active": false,
        "technical": false
    }
]
    @Autowired
    private DocumentClassService docClassService;
    
    public void createDocumentClasses() throws FunctionalException, TechnicalException
    {
        List<Id> tagCat = new ArrayList<Id>();
        tagCat.add(new Id("InfoCourrier"));
        tagCat.add(new Id("InfoClient"));
        List<I18NLabel> tagRefLabels = new ArrayList<>();
        I18NLabel tagReflabelFR = new I18NLabel(
                "Référence interne du client permettant de faire le lien avec son dossier", "FR");
        I18NLabel tagReflabelEN = new I18NLabel("Internal customer reference allowing to classify it", "EN");
        tagRefLabels.add(tagReflabelFR);
        tagRefLabels.add(tagReflabelEN);
        List<I18NLabel> docClassLabels = new ArrayList<>();
        I18NLabel docClasslabelFR = new I18NLabel("Test Document issu d'une chaîne d'acquisition", "FR");
        docClassLabels.add(docClasslabelFR);
        TagReference tag = new TagReference();
        tag.setTagName("NumReference");
        tag.setDescriptions(tagRefLabels);
        List<TagReference> tags = new ArrayList<>();
        tags.add(tag);
        DocumentClass docClass = new DocumentClass();
        docClass.setId(new Id("CourrierTest"));
        docClass.setData(new Data());
        docClass.getData().setOwner("admin");
        docClass.getData().setCreationDate(new Date());
        docClass.getData().setACL(new Id("acl-courrier"));
        docClass.setTagCategories(tagCat);
        docClass.setTagReferences(tags);
        docClass.setDescriptions(docClassLabels);
        docClass.setCategory(com.flower.docs.domain.component.Category.DOCUMENT);
        List<DocumentClass> docClasses = new ArrayList<>();
        docClasses.add(docClass);
        docClassService.create(docClasses);
    }
Modification de classes de documents
Les exemples ci-dessous indiquent comment modifier une classe de documents.
POST {{core}}/rest/documentclass/{ids} HTTP/1.1
-- Paramètre d'URL -- 
core: host de FlowerDocs core
ids : liste des identifiants de classe de documents à mettre à jour, séparés par des virgules
-- Headers --
token: {{token}}
Content-Type: application/json
-- Body (json) --
[
    {
        "id": "CourrierTest",
        "data": {
            "owner": "fadmin",
            "creationDate": "2024-03-07 1353.401 +0100",
            "lastUpdateDate": "2024-03-07 1353.401 +0100",
            "ACL": "acl-courrier"
        },
        "tagCategories": [
            "InfoClient"
        ],
        "tagReferences": [
            {
                "tagName": "RefClient",
                "mandatory": true,
                "multivalued": false,
                "technical": false,
                "readonly": false,
                "order": 0
            }
        ],
        "displayNames": [
            {
                "value": "Courrier Test",
                "language": "FR"
            }
        ],
        "descriptions": [
            {
                "value": "Test Document issu d'une chaîne d'acquisition",
                "language": "FR"
            }
        ],
        "RetentionDuration": {
            "value": 0,
            "unit": "MONTH"
        },
        "category": "DOCUMENT",
        "active": false,
        "technical": false
    }
]
    @Autowired
    private DocumentClassService docClassService;
    
    public List<DocumentClass> updatedocClass(DocumentClass docClass) throws FunctionalException, TechnicalException
    {
        TagReference tag = new TagReference();
        tag.setTagName("NameClient");
        docClass.getTagCategories().remove(new Id("InfoCourrier"));
        docClass.getTagReferences().add(tag);
        List<DocumentClass> docClasses = new ArrayList<>();
        docClasses.add(docClass);
        return docClassService.update(docClasses);
    }
En utilisant le service REST, les informations non renseignées seront vidées : il faut envoyer la totalité de la classe de document et pas seulement les informations à modifier.
        Suppression de classes de documents
Les exemples ci-dessous indiquent comment supprimer une liste de classes de documents.
DELETE {{core}}/rest/documentclass/{ids} HTTP/1.1
-- Paramètre d'URL -- 
core: host de FlowerDocs core
ids : liste des identifiants de classe de documents à supprimer, séparés par des virgules
-- Headers --
token: {{token}}
    @Autowired
    private DocumentClassService docClassService;
    
    public void deleteDocumentClasses() throws FunctionalException, TechnicalException
    {
        List<Id> docClassesIds = Lists.newArrayList(new Id("docClassId"));
        docClassService.delete(docClassesIds);
    }
La suppression ne fait aucun contrôle : il faut donc vérifier qu’il n’y a pas d’instances en cours avant la suppression d’une classe de document.