Handling folder classes

Create, retrieve, modify, delete your folder classes

The FolderClassService service exhibits all available operations around FolderClass type components.


This refers to physical folders, not virtual folders.

Retrieving folder classes

Retrieving all folder classes

The examples below show how to retrieve the list of all folder classes present on the scope.


# <CORE_HOST>: FlowerDocs Core base URL
# <TOKEN>: authentication token
curl -X GET "<CORE_HOST>/rest/folderclass" \
  -H "token: <TOKEN>"

    @Autowired
    private FolderClassService folderClassService;

    public List<FolderClass> getAllFolderClass() throws FunctionalException, TechnicalException
    {
        return folderClassService.getAll();
    }

Retrieving a defined list of folder classes

The examples below show how to retrieve a list of folder classes from their identifiers.


# <CORE_HOST>: FlowerDocs Core base URL
# <TOKEN>: authentication token
# <IDS>: list of folder class identifiers, separated by commas
curl -X GET "<CORE_HOST>/rest/folderclass/<IDS>" \
  -H "token: <TOKEN>"

    @Autowired
    private FolderClassService folderClassService;

    public List<FolderClass> getFolderClasses() throws FunctionalException, TechnicalException
    {
        List<Id> folderClassesIds = Lists.newArrayList(new Id("folderClassId"));
        folderClassesIds.add(new Id("folderClass2Id"));
        return folderClassService.get(folderClassesIds);
    }

Creating folder classes

The examples below show how to create a folder class.


# <CORE_HOST>: FlowerDocs Core base URL
# <TOKEN>: authentication token
curl -X POST "<CORE_HOST>/rest/folderclass" \
  -H "token: <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '[
    {
        "id": "testFolder",
        "data": {
            "owner": "fadmin",
            "ACL": "acl-folder"
        },
        "tagReferences": [
            {
                "tagName": "Commentaire",
                "mandatory": false,
                "multivalued": false,
                "technical": false,
                "readonly": false,
                "order": 1
            }
        ],
        "children": [
            {
                "id": "*",
                "category": "FOLDER"
            },
            {
                "id": "*",
                "category": "DOCUMENT"
            }
        ],
        "category": "FOLDER"
    }
]'

    @Autowired
    private FolderClassService folderClassService;

    public void createFolderClasses() throws FunctionalException, TechnicalException
    {
        TagReference tag = new TagReference();
        tag.setTagName("Commentaire");
        tag.setOrder(1);
        List<TagReference> tags = new ArrayList<>();
        tags.add(tag);

        ComponentReference componentFolder = new ComponentReference(new Id("*"), Category.FOLDER);
        ComponentReference componentDoc = new ComponentReference(new Id("*"), Category.DOCUMENT);
        List<ComponentReference> componentsRef = new ArrayList<>();
        componentsRef.add(componentDoc);
        componentsRef.add(componentFolder);

        FolderClass folderClass = new FolderClass();
        folderClass.setId(new Id("testFolder"));
        folderClass.setData(new Data());
        folderClass.getData().setACL(new Id("acl-folder"));
        folderClass.getData().setOwner("admin");
        folderClass.setTagReferences(tags);
        folderClass.setChildren(componentsRef);

        List<FolderClass> folderClasses = new ArrayList<>();
        folderClasses.add(folderClass);

        folderClassService.create(folderClasses);
    }

Updating folder classes

The examples below show how to update a folder class.


# <CORE_HOST>: FlowerDocs Core base URL
# <TOKEN>: authentication token
# <IDS>: list of folder class identifiers to update, separated by commas
curl -X POST "<CORE_HOST>/rest/folderclass/<IDS>" \
  -H "token: <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '[
    {
        "id": "testFolder",
        "data": {
            "owner": "fadmin",
            "ACL": "acl-folder"
        },
        "tagReferences": [
            {
                "tagName": "Commentaire",
                "mandatory": false,
                "multivalued": false,
                "technical": false,
                "readonly": false,
                "order": 1
            },
            {
                "tagName": "NumReference",
                "mandatory": true,
                "multivalued": false,
                "technical": false,
                "readonly": false,
                "order": 2
            }
        ],
        "children": [
            {
                "id": "*",
                "category": "FOLDER"
            },
            {
                "id": "*",
                "category": "DOCUMENT"
            }
        ],
        "category": "FOLDER"
    }
]'

    @Autowired
    private FolderClassService folderClassService;

    public List<FolderClass> updateFolderClasses(FolderClass folderClass) throws FunctionalException, TechnicalException
    {
        TagReference tag = new TagReference();
        tag.setTagName("NumReference");
        tag.setOrder(2);

        folderClass.getTagReferences().add(tag);

        List<FolderClass> folderClasses = new ArrayList<>();
        folderClasses.add(folderClass);

        return folderClassService.update(folderClasses);
    }


When using the REST service, unset fields will be cleared: you must send the entire folder class, not just the fields to modify.

Deleting folder classes

The examples below show how to delete a list of folder classes.


# <CORE_HOST>: FlowerDocs Core base URL
# <TOKEN>: authentication token
# <IDS>: list of folder class identifiers to delete, separated by commas
curl -X DELETE "<CORE_HOST>/rest/folderclass/<IDS>" \
  -H "token: <TOKEN>"

    @Autowired
    private FolderClassService folderClassService;

    public void deleteFolderClasses() throws FunctionalException, TechnicalException
    {
        List<Id> folderClassesIds = Lists.newArrayList(new Id("folderClassId"));
        folderClassService.delete(folderClassesIds);
    }


Deletion does not perform any checks: you must verify that there are no existing instances before deleting a folder class.