Consolidation d'un RC-RI à réception d'un RS-SR#386
Consolidation d'un RC-RI à réception d'un RS-SR#386bou3108 merged 10 commits intoconverter/rc-ri-single-messagefrom
Conversation
|
d74e45b to
51a60ca
Compare
|
51a60ca to
127ff73
Compare
|
|
| """ | ||
|
|
||
| try: | ||
| resources = rs_ri["content"]["jsonContent"]["embeddedJsonContent"]["message"][ |
There was a problem hiding this comment.
Utiliser get_field_value et une constante pour le path
There was a problem hiding this comment.
Comme on manipule directement une resource désormais, ça m'a paru moins nécessaire
|
|
||
| for rs_sr in rs_sr_list: | ||
| try: | ||
| resource_status = rs_sr["content"]["jsonContent"]["embeddedJsonContent"][ |
| return None | ||
|
|
||
| # state is an array in RS-RI | ||
| resource["state"] = [resource_state_by_id[resource_id]] |
There was a problem hiding this comment.
utiliser un set_value ici
| return "resourcesInfoCisu" | ||
|
|
||
| @classmethod | ||
| def from_rs_to_cisu(cls, edxl_json: Dict[str, Any]) -> Dict[str, Any] | None: |
There was a problem hiding this comment.
Changer le type pour retourner une liste de Dict[str, Any] au lieu de None
There was a problem hiding this comment.
J'ai renvoyé {} car dans le cas passant cette méthode renvoie un RC-RI, et c'est à plus haut nivau que c'est empaqueté dans un array
|
|
||
| rs_ri = get_last_rs_ri_by_case_id(case_id) | ||
| if rs_ri is None: # No RS-RI persisted yet, we do nothing | ||
| return None |
There was a problem hiding this comment.
Retourner plutôt une liste vide (None n'est pas gérer par la méthode appelante)
|
|
| result = [] | ||
|
|
||
| for rs_sr in rs_sr_list: | ||
| resource_status = get_field_value(rs_sr, "$.resourceStatus") |
There was a problem hiding this comment.
Ce n'est pas $.state.status d'après le schéma du RS-SR ? Et mettre le chemin d'accès dans une constante.
|
|
||
| persisted_rs_ri = get_last_rs_ri_by_case_id(case_id) | ||
| if persisted_rs_ri is None: # No RS-RI persisted yet, we return an empty object | ||
| return {} |
There was a problem hiding this comment.
Plutôt liste vide du coup ? Sinon on va renvoyer un objet vide au dispatcher. Aussi tu peux ajouter un commentaire TODO pour prévoir de renvoyer une erreur à la place ? C'est dans les tâches suivantes de gestion des cas à la marge.
| @classmethod | ||
| def from_rs_to_cisu(cls, edxl_json: Dict[str, Any]) -> Dict[str, Any]: | ||
| content = cls.copy_rs_input_use_case_content(edxl_json) | ||
| case_id = get_field_value(content, "$.caseId") |
There was a problem hiding this comment.
Ce serait top de mettre le chemin dans une constante.
| merged_rs_ri = merge_info_and_resources(resources, resources_status_list) | ||
|
|
||
| if merged_rs_ri is None: | ||
| return {} |
There was a problem hiding this comment.
Pas besoin de traiter ce cas ici, si il manque une ressource, from_rs_to_cisu va déjà retourner une erreur.
| def merge_info_and_resources( | ||
| resources: list[dict], | ||
| resources_status_list: list[dict], | ||
| ) -> list[dict] | None: |
There was a problem hiding this comment.
Je pense qu'on devrait forcement au moins retourner le rs-ri de base sans modification. Ce n'est pas responsabilité de cette fonction de gérer le cas d'une ressource sans status. C'est géré ensuite dans la méthode de conversion appelée.
| rs_sr_state = None | ||
|
|
||
| # resource has no state and no RS-SR has been emitted yet | ||
| if "state" not in resource and rs_sr_state is None: |
There was a problem hiding this comment.
On peut ainsi enlever ce cas
| if merged_rs_ri is None: | ||
| return {} | ||
|
|
||
| set_value(rs_ri, "path", merged_rs_ri) |
There was a problem hiding this comment.
Attention au path qui n'est pas le bon ici
|
1d92ac5 to
8bf65e6
Compare
|
|
|
🔎 Détails
Dans le converter, à la réception d’un RS-SR, si toutes les ressources ont un statut, créer le message RC-RI et le retourner pour transmission aux pompiers.
📄 Documentation
📸 Captures d'écran
🔗 Ticket associé
Asana