Folders
Récupération des dossiers
Route
GET /rest/folders
Paramètres
Aucun paramètre n'est nécessaire.
Retour
L'ensemble des dossiers du périmètre de l'utilisateur sont retournés :
{
"folders": [
{
"name": "Compétences fonctionnelles",
"id": 1,
"label": "Compétences fonctionnelles",
"public": true,
"user_id": 21,
"parent_id": null,
"level": 0,
"countResources": 0,
"pinned": true,
"canEdit": true
},
{
"name": "Administration municipale",
"id": 4,
"label": "Administration municipale",
"public": true,
"user_id": 21,
"parent_id": 1,
"level": 1,
"countResources": 0,
"pinned": false,
"canEdit": true
}
]
}
Code Http |
Type |
Description |
Exemple |
200 |
array |
Les dossiers ont bien été trouvés |
Voir résultat requête juste au dessus |
Récupération d'un dossier
Route
GET /rest/folders/{id}
Paramètres
Valeur |
Type |
Obligatoire |
Description |
id |
integer |
Oui |
Identifiant du dossier |
Retour
Exemple de retour :
{
"folder": {
"id": 4,
"label": "Administration municipale",
"public": true,
"user_id": 21,
"parent_id": 1,
"level": 1,
"ownerDisplayName": "Bernard BLIER",
"sharing": {
"entities": [
{
"entity_id": 1,
"edition": false,
"canDelete": false,
"label": "Ville de Maarch-les-Bains"
},
{
"entity_id": 2,
"edition": false,
"canDelete": false,
"label": "Cabinet du Maire"
}
]
},
"pinned": false
}
}
Code Http |
Type |
Description |
Exemple |
200 |
array |
Le dossier a bien été trouvé |
Voir résultat requête juste au dessus |
400 |
array |
Le paramètre id envoyé n'est pas de type integer |
{"errors": "Route id is not an integer"} |
400 |
array |
Une erreur s'est produite |
{"errors": "Le dossier recherché est introuvable ou est en dehors du périmètre de l'utilisateur connecté"} |
Création d'un dossier
Route
POST /rest/folders
Paramètres
Body
Valeur |
Type |
Obligatoire |
Description |
label |
string |
Oui |
Nom du dossier |
|
|
parent_id |
integer |
Non |
Identifiant du dossier parent |
Exemple
Enregistrement d'un dossier ayant pour sujet "Un dossier à enregistrer" :
{
"label" : "Un dossier à enregistrer"
}
Retour
Code Http |
Type |
Description |
Exemple |
200 |
array |
Le dossier a bien été créé |
{ "folder": 40 } |
400 |
array |
Le champs label n'est pas de type string |
{"errors": "Body label is empty or not a string"} |
400 |
array |
Le champs parent_id n'est pas de type integer |
{"errors": "Body parent_id is not an integer"} |
400 |
array |
Le dossier parent est introuvable ou en dehors de l'utilisateur connecté |
{"errors": "Parent Folder not found or out of your perimeter"} |
Modification d'un dossier
Route
PUT /rest/folders/{id}
Paramètres
Valeur |
Type |
Obligatoire |
Description |
id |
integer |
Oui |
Identifiant du dossier |
Body
Valeur |
Type |
Obligatoire |
Description |
label |
string |
Oui |
Nom du dossier |
parent_id |
integer |
Non |
Identifiant du dossier parent |
Exemple
Modification d'un dossier ayant pour sujet "Un dossier à modifier" :
{
"label" : "Un dossier à modifier"
}
Retour
Code Http |
Type |
Description |
Exemple |
200 |
array |
Le dossier a bien été modifié |
|
400 |
array |
Le paramètre id envoyé est absent ou n'est pas de type integer |
{"errors": "Query id is empty or not an integer"} |
400 |
array |
Le champs label est absent ou n'est pas de type string |
{"errors": Body label is empty or not a string"} |
400 |
array |
Le champs parent_id n'est pas de type integer |
{"errors": Body parent_id is not an integer"} |
400 |
array |
Le champs parent_id et le paramètre id ne peuvent pas être de la même valeur |
{"errors": Parent_id and id can not be the same"} |
400 |
array |
Le champs parent_id n'existe pas ou est un parent de parent_id |
{"errors": parent_id does not exist or Id is a parent of parent_id"} |
400 |
array |
Le dossier n'a pas été trouvé ou est en dehors du périmètre de l'utilisateur connecté |
{"errors": Folder not found or out of your perimeter"} |
400 |
array |
Le dossier parent n'a pas été trouvé ou est en dehors de votre périmètre |
{"errors": Parent Folder not found or out of your perimeter"} |
400 |
array |
Impossible de déplacer ce dossier car au moins un dossier est en dehors du périmètre de l'utilisateur connecté |
{"errors": Cannot move folder because at least one folder is out of your perimeter"} |
400 |
array |
Impossible de partager/départager le dossier car au moins un dossier est en dehors du périmètre de l'utilisateur connecté |
{"errors": Cannot share/unshare folder because at least one folder is out of your perimeter"} |
Suppression d'un dossier
Route
DELETE /rest/folders/{id}
Paramètres
Valeur |
Type |
Obligatoire |
Description |
id |
integer |
Oui |
Identifiant du dossier |
user_id |
integer |
Oui |
Identifiant de l'utilsateur |
Retour
Code Http |
Type |
Description |
Exemple |
204 |
array |
Le dossier a bien été supprimé |
|
400 |
array |
Le paramètre id envoyé est absent ou n'est pas de type integer |
{"errors": Query id is empty or not an integer"} |
500 |
array |
Impossible de supprimer le dossier car au moins un dossier est en dehors du périmètre de l'utilisateur connecté |
{"errors": Cannot delete because at least one folder is out of your perimeter"} |
Partage du dossier aux entités
Route
PUT /rest/folders/{id}/sharing
Paramètres
Valeur |
Type |
Obligatoire |
Description |
id |
integer |
Oui |
Identifiant du dossier |
Body
Valeur |
Type |
Obligatoire |
Description |
public |
boolean |
Oui |
Confidentialité du dossier |
sharing.entities.entity_id |
integer |
Oui |
Identifiant technique de l'entité |
sharing.entities.edition |
boolean |
Oui |
Droit de l'entité sur la modification des paramètres du dossier |
{
"public": true,
"sharing": {
"entities": [
{
"entity_id": 4,
"edition": false
},
{
"entity_id": 3,
"edition": false
}]
}
}
Retour
Code Http |
Type |
Description |
Exemple |
204 |
array |
Les entités ayant accès à ce dossier ont bien été mises à jour |
|
400 |
array |
Le paramètre id envoyé est absent ou n'est pas de type integer |
{"errors": Query id is empty or not an integer"} |
400 |
array |
Le paramètre public envoyé est absent ou n'est pas de type boolean |
{"errors": Body public is empty or not a boolean"} |
400 |
array |
Il n'y a pas de champ entities dans l'objet sharing |
{"errors": Body sharing/entities does not exists"} |
Portée d'un dossier
Route
GET /rest/folders/{id}/filters
Paramètres
L'identifiant du dossier : {id} dans les paramètres de l'url
Retour
Code Http |
Type |
Description |
Exemple |
200 |
array |
Le dossier a bien été trouvé |
|
400 |
array |
Le paramètre id n'est pas de type integer |
{"errors": "Route id is not an integer"} |
400 |
array |
Le dossier est en dehors de la portée de l'utilisateur connecté |
{"errors": "Folder out of perimeter"} |
Exemple de retour :
{
"entities": [
{
"entityId": "COR",
"label": "Correspondants Archive",
"count": 1
},
{
"entityId": "DGA",
"label": "Direction Générale Adjointe",
"count": 1
}
],
"priorities": [],
"categories": [],
"statuses": [
{
"id": "EXP_SEDA",
"label": "A archiver",
"count": 1
},
{
"id": "EVIS",
"label": "A e-viser",
"count": 1
},
],
"entitiesChildren": [
{
"entityId": "COR",
"label": "Correspondants Archive",
"count": 1
},
{
"entityId": "DGA",
"label": "Direction Générale Adjointe",
"count": 4
},
],
"doctypes": [
{
"id": 101,
"label": "Abonnements – documentation – archives",
"count": 3
},
{
"id": 102,
"label": "Convocation",
"count": 1
}
],
"folders": []
}
Récupération des ressources d'un dossier
Route
GET /rest/folders/{id}/resources
Paramètres
Body
Valeur |
Type |
Obligatoire |
Description |
id |
integer |
Oui |
Identifiant du dossier |
Retour
{
"resources": [
{
"resId": 107,
"chrono": "MAARCH/2021A/11",
"barcode": null,
"subject": "salut",
"confidentiality": null,
"statusLabel": "A archiver",
"statusImage": "fm-letter-status-acla",
"priorityColor": "#009dc5",
"closing_date": null,
"countAttachments": 0,
"hasDocument": true,
"mailTracking": true,
"integrations": null,
"retentionFrozen": false,
"binding": null,
"countNotes": 76,
"folders": [
{
"id": 1,
"label": "Compétences fonctionnelles"
}
],
"display": [],
"allowed": true
},
{
"resId": 108,
"chrono": "MAARCH/2021A/12",
"barcode": null,
"subject": "fffffff",
"confidentiality": null,
"statusLabel": "A e-viser",
"statusImage": "fm-letter-status-aval",
"priorityColor": "#009dc5",
"closing_date": null,
"countAttachments": 0,
"hasDocument": true,
"mailTracking": false,
"integrations": null,
"retentionFrozen": false,
"binding": null,
"countNotes": 1,
"folders": [
{
"id": 1,
"label": "Compétences fonctionnelles"
}
],
"display": [],
"allowed": true
}
],
"countResources": 2,
"allResources": [
107,
108
]
}
Code Http |
Type |
Description |
Exemple |
̀200 |
array |
Les ressources ont bien été retournées |
|
400 |
array |
Le paramètre id envoyé est absent ou n'est pas de type integer |
{"errors": "Route id is not an integer"} |
400 |
array |
Le dossier est en dehors de la portée de l'utilisateur connecté |
{"errors": "Folder out of perimeter"} |
Ajout de ressources par id
Route
POST /rest/folders/{id}/resources
Paramètres
Body
Valeur |
Type |
Obligatoire |
Description |
resources |
array |
Oui |
Ressources à ajouter |
{
"resources": [112]
}
Retour
{
"countResources": 1
}
Code Http |
Type |
Description |
Exemple |
̀200 |
array |
Les ressources ont bien été ajoutées |
|
400 |
array |
Le paramètre id envoyé est absent ou n'est pas de type integer |
{"errors": "Route id is not an integer"} |
400 |
array |
Les ressources envoyées sont vides ou ne sont pas de type array |
{"errors": "Body resources is empty or not an array"} |
400 |
array |
Le dossier est en dehors de la portée de l'utilisateur connecté |
{"errors": "Folder out of perimeter"} |
400 |
array |
Les ressources sont en dehors du périmètre |
{"errors": "Resources out of perimeter"} |
Suppression de ressources par id
Route
DELETE /rest/folders/{id}/resources
Paramètres
Valeur |
Type |
Obligatoire |
Description |
id |
integer |
Oui |
Identifiant du dossier |
Body
Valeur |
Type |
Obligatoire |
Description |
resources |
array |
Oui |
Ressources à supprimer |
{
"resources":[107]
}
Retour
{
"countResources" : 5
}
Code Http |
Type |
Description |
Exemple |
̀204 |
array |
Les ressources ont bien été supprimées |
|
400 |
array |
Le paramètre id envoyé est absent ou n'est pas de type integer |
{"errors": "Route id is not an integer"} |
400 |
array |
Les ressources envoyées sont vides ou ne sont pas de type array |
{"errors": "Body resources is empty or not an array"} |
400 |
array |
Le dossier est en dehors de la portée de l'utilisateur connecté |
{"errors": "Folder out of perimeter"} |
400 |
array |
Les ressources sont en dehors du périmètre |
{"errors": "Resources out of perimeter"} |
Epinglement d'un dossier
Route
POST /rest/folders/{id}/pin
Paramètres
Valeur |
Type |
Obligatoire |
Description |
id |
integer |
Oui |
Identifiant du dossier |
Retour
Code Http |
Type |
Description |
Exemple |
204 |
array |
Le dossier a bien été épinglé |
|
400 |
array |
Le paramètre id ne correspond à aucun dossier ou n'est pas de type integer |
{"errors": "Route id not found or is not an integer"} |
400 |
array |
Dossier non trouvé ou en dehors du périmètre de l'utilisateur connecté |
{"errors": "Folder not found or out of your perimeter"} |
400 |
array |
Le dossier est déjà épinglé |
{"errors": "Folder is already pinned"} |
Récupérer les dossiers épinglés
Route
GET /rest/pinnedFolders
Retour
Exemple de retour :
{
"folders": [
{
"name": "Archives",
"id": 15,
"label": "Archives",
"public": true,
"user_id": 21,
"parent_id": 1,
"level": 1,
"countResources": 0
},
{
"name": "Compétences fonctionnelles",
"id": 1,
"label": "Compétences fonctionnelles",
"public": true,
"user_id": 21,
"parent_id": null,
"level": 0,
"countResources": 0
}
]
}
Code Http |
Type |
Description |
Exemple |
200 |
array |
Les dossiers épinglés sont retournés |
Désépinglement d'un dossier
Route
DELETE /rest/folders/{id}/unpin
Paramètres
Body
Valeur |
Type |
Obligatoire |
Description |
id |
integer |
Oui |
Identifiant du dossier |
Retour
Code Http |
Type |
Description |
Exemple |
204 |
array |
Le dossier a bien été désépinglé |
|
400 |
array |
Le paramètre id ne renvoie à aucun dossier ou n'est pas de type integer |
{"errors": "Route id not found or is not an integer"} |
400 |
array |
Le dossier n'a pas été trouvé ou est en dehors de la portée de l'utilisateur connecté |
{"errors": "Folder out of perimeter"} |
400 |
array |
Le dossier n'est pas épinglé |
{"errors": "Folder is not pinned"} |