[ Dispatcher] Refacto : migration des maps de configuration vers un objet de configuration client - #603
Conversation
|
|
b2b0a3d to
869e947
Compare
|
| Message errorAmqpMessage; | ||
| if (convertToXML(sender, hubConfig.getUseXmlPreferences().get(sender))) { | ||
| Boolean useXML = | ||
| hubConfig.getClientPropertiesRegistry().get(sender) != null |
There was a problem hiding this comment.
On peut ajouter un helper comme getClientVersionsForPerimeter pour éviter d'avoir à gérer le cas où le client est inconnu.
| try { | ||
| if (convertToXML(recipientId, hubConfig.getUseXmlPreferences().get(recipientId))) { | ||
| Boolean useXML = | ||
| hubConfig.getClientPropertiesRegistry().get(recipientId) != null |
There was a problem hiding this comment.
Idem, helper à réutiliser.
| String recipientId = getRecipientID(edxlMessage); | ||
| String useCase = EdxlUtils.getUseCaseFromMessage(edxlMessage.getFirstContentMessage()); | ||
| ClientProperties clientProperties = | ||
| hubConfig.getClientPropertiesRegistry().get(recipientId); |
There was a problem hiding this comment.
Idem, on peut créer un helper pour inhibitedUseCases.
| .getOrDefault(healthActor, DEFAULT_DIRECT_CISU_PREFERENCE); | ||
| return directCisuPreference != null && directCisuPreference; | ||
|
|
||
| ClientProperties healthActorProperties = |
There was a problem hiding this comment.
On peut ici aussi créer un helper.
| @@ -155,13 +155,10 @@ public static void checkMessageClassNameSupported( | |||
| public static void checkMessageNotInhibited( | |||
There was a problem hiding this comment.
Est ce qu'on peut refacto cette méthode pour ne pas avoir à lui passer la liste de usecase ? Comme ça évite de la potentielle desynchronisation entre le recipient ID passé en entrée et la liste associé (qui est get grace au recipientId lui aussi).
| private String getEditorFromSender(String sender) { | ||
| return hubConfig.getClientsEditorMap().getOrDefault(sender, UNKNOWN); | ||
| ClientProperties clientProperties = hubConfig.getClientPropertiesRegistry().get(sender); | ||
| return clientProperties != null ? clientProperties.editor() : UNKNOWN; |
There was a problem hiding this comment.
editor est optionnel dans le schéma de la configuration client. Ici on pourrait renvoyer null (ce qui causerait un crash de la publication des métriques notamment).
|
| clients: | ||
| - client_id: fr.health.test.samu-v1 | ||
| common_name: fr.health.test.samu-v1.fr | ||
| - client_id: fr.health.samuA |
There was a problem hiding this comment.
On ne peut pas rester sur samu-v1 dans les tests comme actuellement ? C'est plus descriptif et à la cible avec un seul périmètre par client.
| return perimeter.versions().toArray(String[]::new); | ||
| } | ||
|
|
||
| public Boolean getClientAcceptedMediaType(String clientId) { |
There was a problem hiding this comment.
C'est un peu étrange qu'on renvoie un booléen ici. Avec ce naming je m'attendrais à un enum avec JSON ou XML. On peut garder quelque chose comme en l'état getClientUseXML sinon ?
|
|
🔎 Détails
Ce ne peut être qu'un état transitoire (on préfèrerait gérer la ClientPropertiesRegistry comme un Bean accessible en direct) mais cela évite de trop modifier la classe ConversionUtils
🔗Ticket associé
2. [ Dispatcher ] appeler directement la map de config client plutôt que les maps intermédiaires