Divers¶
Cette section regroupe les routes techniques qui ne relèvent pas d’un domaine métier.
Information
Les routes de cette page sont consommées par le frontend de Maarch Courrier et n’offrent aucune garantie de compatibilité à un consommateur externe.
Résoudre l’adresse de l’instance¶
Cette route permet au frontend de déterminer l’adresse de l’interface Maarch Courrier au démarrage, avant l’authentification.
Route¶
Authentification et paramètres¶
La route est accessible sans authentification. Elle n’attend aucun paramètre.
Retour¶
Toutes les situations traitées renvoient un code 200.
| Situation | Type | Réponse |
|---|---|---|
Un seul custom contient path ou uri |
object | {"url":"https://<nom-de-domaine>/<custom>/dist/index.html"} |
Aucun fichier custom/custom.json, ou fichier vide |
object | {"message":"No custom file","lang":"noConfiguration"} ou {"message":"No custom","lang":"noConfiguration"} |
Plusieurs custom sont déclarés |
object | {"message":"There is more than 1 custom","lang":"moreOneCustom"} |
Un seul custom ne contient ni path ni uri |
object | {"url":null} |
Données¶
| Valeur | Type | Description |
|---|---|---|
url |
string ou null | URL de redirection vers l’interface du custom unique |
message |
string | Message technique lorsque l’URL ne peut pas être déterminée |
lang |
string | Clé de traduction utilisée par l’interface |
Lister les départements français¶
Cette route fournit au frontend le référentiel fixe des départements français utilisé notamment par les critères de recherche.
Route¶
Authentification et paramètres¶
L'authentification REST est obligatoire. Aucun privilège fonctionnel supplémentaire n'est contrôlé. La route n'attend aucun paramètre.
Retour¶
| Code HTTP | Type | Description | Exemple abrégé |
|---|---|---|---|
200 |
object | Codes et noms des départements français, Corse et outre-mer inclus | {"departments":{"01":"Ain","75":"Paris","971":"Guadeloupe"}} |
401 |
object | Authentification absente ou invalide | {"errors":"Authentication Failed"} |
403 |
object | Route indisponible pour l'utilisateur authentifié | {"errors":"Service forbidden"} |
Données¶
| Valeur | Type | Description |
|---|---|---|
departments |
object | Association entre chaque code de département et son nom |
Clé de departments |
string | Code conservé sous forme de chaîne, par exemple 01, 2A, 2B, 971 ou 976 |
Valeur de departments |
string | Nom du département, par exemple Ain, Corse du Sud, Guadeloupe ou Mayotte |
Charger le catalogue d'une langue¶
Cette route charge les traductions utilisées par le frontend. Les traductions du custom courant remplacent les clés de même nom définies dans le catalogue du cœur.
Route¶
Authentification, privilège et périmètre¶
La route est accessible sans authentification afin de permettre le chargement des traductions avant la connexion. Aucun privilège fonctionnel ni périmètre par entité n'est appliqué.
Paramètres d'URL¶
| Valeur | Type | Obligatoire | Description |
|---|---|---|---|
lang |
string | Oui | Identifiant de langue, par exemple fr ou en |
Retour¶
| Code HTTP | Type | Description | Exemple |
|---|---|---|---|
200 |
object | Catalogue du cœur fusionné avec les traductions du custom |
{"lang":{"LOGIN":"Connexion","LOGOUT":"Déconnexion"}} |
200 |
object | Aucun catalogue trouvé pour l'identifiant de langue demandé | {"lang":[]} |
Données¶
| Valeur | Type | Description |
|---|---|---|
lang |
object ou array | Association des clés et traductions, ou tableau vide si la langue est absente |
Clé de lang |
string | Clé technique de traduction |
Valeur de lang |
string | Texte traduit, une surcharge du custom est prioritaire |
Générer un catalogue de langue¶
Route¶
Authentification, privilège et périmètre¶
L'authentification REST est obligatoire. Aucun privilège fonctionnel supplémentaire n'est contrôlé par le contrôleur. La route est cependant refusée si elle n'est pas disponible pour l'utilisateur authentifié.
Au moins un bundle Angular compilé doit exister parmi dist/main-es5.js, dist/main-es2015.js et dist/main.js. La modification concerne l'instance entière, sans périmètre par entité.
Body¶
| Valeur | Type | Obligatoire | Description |
|---|---|---|---|
langId |
string | Oui | Identifiant utilisé dans le nom src/lang/lang-{langId}.json |
jsonContent |
object | Oui | Association complète des clés de traduction et de leurs valeurs |
Seul langId est validé par le contrôleur. jsonContent est sérialisé tel quel au format JSON, avec indentation et sans échappement des caractères Unicode ni des barres obliques.
Retour¶
| Code HTTP | Type | Description | Exemple |
|---|---|---|---|
204 |
vide | Catalogue enregistré dans src/lang/lang-{langId}.json |
Aucun contenu |
400 |
object | langId absent, vide ou non textuel |
{"errors":"Body langId is empty or not a string"} |
400 |
object | Impossible d'ouvrir le fichier cible en écriture | {"errors":"Cannot open file : src/lang/lang-en.json"} |
401 |
object | Authentification absente ou invalide | {"errors":"Authentication Failed"} |
403 |
object | Aucun bundle Angular compilé n'est présent | {"errors":"Route forbidden"} |
403 |
object | Route indisponible pour l'utilisateur authentifié | {"errors":"Service forbidden"} |