Les faits représentent les événements de la piste d’audit enregistrés sur les composants (documents, dossiers, tâches, dossiers virtuels). Chaque fait capture une action effectuée par un utilisateur sur un composant.
Récupération de faits
Les exemples ci-dessous indiquent comment récupérer les faits d’un document. Le même modèle s’applique aux dossiers (/rest/folders), tâches (/rest/tasks) et dossiers virtuels (/rest/virtualFolders).
# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
# <ID> : identifiant du document
curl -X GET "<CORE_HOST>/rest/documents/<ID>/facts" \
-H "token: <TOKEN>"
@Autowired
private FactService factService;
public List<Fact> getFacts() throws TechnicalException, FunctionalException
{
Id componentId = new Id("documentId");
return factService.get(componentId, Category.DOCUMENT);
}
Le même modèle d’endpoint est disponible pour tous les types de composants :
- Documents :
GET /rest/documents/<ID>/facts - Dossiers :
GET /rest/folders/<ID>/facts - Tâches :
GET /rest/tasks/<ID>/facts - Dossiers virtuels :
GET /rest/virtualFolders/<ID>/facts
Création d’un fait
Les exemples ci-dessous indiquent comment créer un fait pour un document.
# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
# <ID> : identifiant du document
curl -X POST "<CORE_HOST>/rest/documents/<ID>/facts" \
-H "token: <TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"action": "CUSTOM_ACTION",
"description": "Événement d'\''audit personnalisé",
"technical": false
}'
@Autowired
private FactService factService;
public Fact createFact() throws TechnicalException, FunctionalException
{
Id componentId = new Id("documentId");
Fact fact = new Fact();
fact.setAction("CUSTOM_ACTION");
fact.setDescription("Événement d'audit personnalisé");
fact.setTechnical(false);
return factService.create(componentId, Category.DOCUMENT, fact);
}
Recherche de faits
Les faits peuvent être recherchés à l’aide d’un objet SearchRequest, qui permet de filtrer par composant, utilisateur, action, plage de dates, etc.
# <CORE_HOST> : URL de base de FlowerDocs Core
# <TOKEN> : jeton d'authentification
curl -X POST "<CORE_HOST>/rest/facts" \
-H "token: <TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"searchCriteria": [
{
"name": "objectId",
"value": "documentId"
},
{
"name": "action",
"value": "CUSTOM_ACTION"
}
],
"paginationContext": {
"maxResults": 50,
"pageIndex": 0
}
}'
@Autowired
private FactService factService;
public SearchResult<Fact> searchFacts() throws TechnicalException, FunctionalException
{
SearchRequest request = new SearchRequest();
request.getSearchCriteria().add(new SearchCriteria("objectId", "documentId"));
request.getSearchCriteria().add(new SearchCriteria("action", "CUSTOM_ACTION"));
request.setPaginationContext(new PaginationContext(50, 0));
return factService.search(request);
}