# Gestion du courrier
Présentation des différentes méthodes de gestion du courrier mises à disposition par le web service CADIC.
---
## URL de base
```{URL_CADIC}/exl-php/webservices/courrier/index.php```
---
## Création d'un nouveau courrier (Insertion dans la base de données Archivistique)
### Méthode HTTP :
```POST```
### Paramètres en URL
Aucun
### Paramètres Data
* archive=[file]
Cet item correspond au fichier .zip qui sera envoyé .
Ce fichier Zip doit contenir deux éléments :
* Un fichier manifest.xml au format seda2.1 décrivant les métadonnées associés aux documents numériques
* Un fichier numérique devant être associé à la description Archivistique
### Réponse de réussite :
* Code HTTP : 201
* Content:
```
{
status: "ok",
error: false,
message: "Fichier téléversé avec succès.",
data: {
fichiers: [...]
}
}
```
### Exemple d'appel :
```js
var formData = new FormData(document.getElementById("form"));
$.ajax({
url: "{URL_CADIC}/exl-php/webservices/courrier/index.php",
type : "POST",
data: formData,
contentType: false,
cache: false,
processData: false,
success : function(res) {
console.log(res);
}
});
```
---
## Mise à jour d'un courrier
### Méthode HTTP :
```PUT```
### Paramètres en URL
Aucun
### Paramètres Data
* archive=[file]
Cet item correspond au fichier .zip qui sera envoyé
Ce fichier Zip doit contenir deux éléments :
* Un fichier manifest.xml au format seda2.1 décrivant les métadonnées associés aux documents numériques
* Un fichier numérique devant être associé à la description Archivistique
### Réponse de réussite :
* Code HTTP : 200
* Content:
```
{
status: "ok",
error: false,
message: "Enregistrement mis à jour avec succès."
data: {
DOS_COTE1: ...,
DOS_TITRE: ...,
langage: ...
}
}
```
### Exemple d'appel :
```js
var formData = new FormData(document.getElementById("form"));
$.ajax({
url: "{URL_CADIC}/exl-php/webservices/courrier/index.php",
type : "PUT",
data: formData,
contentType: false,
cache: false,
processData: false,
success : function(res) {
console.log(res);
}
});
```
---
## Récupération d'un courrier à partir de sa cote (ArchiveUnit id_Language)
### Méthode HTTP :
```GET```
### Paramètres en URL
* DOS_COTE1 = "{COTE}_{LANGAGE}" - [string] (est construite en suffixant la valeur de ArchiveUnit id (référence du courrier arrivé) avec le caractère _ suivi de la valeur de la balise Language : Exemple : CARR20000002_FR )
Cet item correspond à la cote du courrier présent dans Base de donnéees Archivistique
### Paramètres Data
Aucun
### Réponse de réussite :
* Code HTTP : 200
* Content :
```
{
status: "ok",
error: false,
data: {
id: ...,
DOS_COTE1: ...,
DOS_TITRE: ...,
url: ...
}
}
```
### Exemple d'appel :
```js
$.ajax({
url: "{URL_CADIC}/exl-php/webservices/courrier/index.php/DOS_COTE1={param_url_cote}",
type : "GET",
contentType: false,
cache: false,
processData: false,
success : function(res) {
console.log(res);
}
});
```
---
## Récupération de tous les courriers du Fond de Regroupement Courrier
### Méthode HTTP :
```GET```
### Paramètres en URL
Aucun
### Paramètres Data
Aucun
### Réponse de réussite :
* Code HTTP : 200
* Content:
```
{
status: "ok",
error: false,
data: [
{
DOS_ARC_REF: ...,
DOS_COTE1: ...,
DOS_TITRE: ...,
url: ...
},
...
]
}
```
### Exemple d'appel :
```js
$.ajax({
url: "{URL_CADIC}/exl-php/webservices/courrier/index.php",
type : "GET",
contentType: false,
cache: false,
processData: false,
success : function(res) {
console.log(res);
}
});
```
---
## Recherche Personnalisée de courriers
### Méthode HTTP :
```GET```
### Paramètres en URL
* action = "recherche" [string]
* Autant de critère(s) que souhaité en sachant que chaque critère est lié à un champ présent en base. (ex: WHERE_DOS_FT_TEXT recherche dans le champ DOS_FT_TEXT
Liste des critères :
* WHERE_DOS_FT_TEXT (Recherche sur le contenu du Document associé au manifest.xml)
* WHERE_DOC_AB (recherche sur le champ Description du manifest.xml)
* WHERE_DOS_DATE_ENREGISTREMENT_COURRIER ou autre champs date : exemple :
* WHERE_DOS_DATE_ENVOI_COURRIER
* WHERE_DOS_DATE_RECEPTION_COURRIER
* WHERE_DOS_DATE_CREATION_COURRIER
* WHERE_DOS_DATE_ENREGISTREMENT_COURRIER
* WHERE_DOS_DATE_DEBUT_COURRIER
### Paramètres Data
Aucun
### Réponse de réussite :
* Code HTTP : 200
* Content:
```
{
status: "ok",
error: false,
data: [
{ -- Champs de la table au format key:value -- },
...
]
}
```
### Exemple d'appel :
```js
$.ajax({
url: "{URL_CADIC}/exl-php/webservices/courrier/index.php?WHERE_DOC_AB=fonction&WHERE_DOC_FT_TEXT=majest%C3%A9&action=recherche",
type : "GET",
contentType: false,
cache: false,
processData: false,
success : function(res) {
console.log(res);
}
});
```
---
## Récupération du lien de téléchargement du Courrier
### Méthode HTTP :
```GET```
### Paramètres en URL
* DOS_COTE1 = "{COTE}_{LANGAGE}" - [string] (est construite en suffixant la valeur de ArchiveUnit id (référence du courrier arrivée) avec le caractère _ suivi de la valeur de la balise Language : Exemple : CARR20000002_FR )
Cet item correspond à la cote du courrier présent dans ATOM
* action = 'download'
Cet item correspond à l'action de récupération d'un courrier (Fichier numérique).
### Paramètres Data
Aucun
### Réponse de réussite :
* Code HTTP : 200
* Content:
```
{
status: "ok",
error: false,
data: {
DOS_COTE1: ...,
url: ...
}
}
```
### Exemple d'appel :
```js
$.ajax({
url: "{URL_CADIC}/exl-php/webservices/courrier/index.php/DOS_COTE1={param_url_cote}",
type : "GET",
contentType: false,
cache: false,
processData: false,
success : function(res) {
console.log(res);
}
});
```
---
## Suppression d'un courrier
### Méthode HTTP :
```DELETE```
### Paramètres en URL
* DOS_COTE1 = "{COTE}_{LANGAGE}" - [string] (est construite en suffixant la valeur de ArchiveUnit id (référence du courrier arrivée) avec le caractère _ suivi de la valeur de la balise Language : Exemple : CARR20000002_FR )
Cet item correspond à la cote du courrier présent dans la Base de données Archivistique
### Paramètres Data
Aucun
### Réponse de réussite :
* Code HTTP : 200
* Content:
```
{
status: "ok",
error: false,
message: "Cote correctement supprimée"
}
```
### Exemple d'appel :
```js
$.ajax({
url: "{URL_CADIC}/exl-php/webservices/courrier/index.php/DOS_COTE1={param_url_cote}",
type : "DELETE",
contentType: false,
cache: false,
processData: false,
success : function(res) {
console.log(res);
}
});