Aller au contenu

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

GET /rest/validUrl

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

GET /rest/departments

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

GET /rest/languages/{lang}

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

PUT /rest/languages

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.

{
  "langId": "en",
  "jsonContent": {
    "LOGIN": "Login",
    "LOGOUT": "Logout"
  }
}

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