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"}

results matching ""

    No results matching ""