Development #57669
toulouse_smart : permettre à wcs de connaître l'id côté smart lorsque la requête de création se fait de façon asynchrone.
0%
Description
Si smart n'est pas disponible, la requête de création d'intervention sur sera rejouée plus tard via les jobs du connecteur.
Dans ce cas wcs n'a pas de moyen de récupérer les informations sur l'intervention.
Fichiers
Révisions associées
test: remove duplicated code (#57669)
toulouse_smart: trigger wcs when intervention is created async (#57669)
Historique
Mis à jour par Nicolas Roche il y a plus de 2 ans
- ajouter un WS get_create_response sur lequel wcs peut faire du pulling et qui renverrai ce json.
- ajouter systématiquement le json dans le contenu envoyé à wcs lors du déclenchement d'un trigger (via le endpoint update_intervention)
Mis à jour par Nicolas Roche il y a plus de 2 ans
- Fichier 0003-toulouse_smart-add-smart-response-to-wcs-trigger-con.patch 0003-toulouse_smart-add-smart-response-to-wcs-trigger-con.patch ajouté
- Fichier 0002-toulouse_smart-add-an-endpoint-to-pull-on-async-resp.patch 0002-toulouse_smart-add-an-endpoint-to-pull-on-async-resp.patch ajouté
- Fichier 0001-toulouse_smart-correct-help-text-on-uuid-parameter-5.patch 0001-toulouse_smart-correct-help-text-on-uuid-parameter-5.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Les 2 façons n'étant pas exclusives je propose de les ajouter toutes les 2.
Mis à jour par Benjamin Dauvergne il y a plus de 2 ans
Je pensais que tu ajouterais une notification directe quand le job create_intervention_job réussit, ça serait le plus simple, en cas de création asynchrone là il faudra attendre une notification de SMART pour que w.c.s. connaisse le numéro de DI, ça pourrait juste être :
def create_intervention_job(self, *args, **kwargs): wcs_request = self.wcs_requests.get(pk=kwargs['pk']) if not wcs_request.push(): raise SkipJob() + payload = { + 'creation_response': { + 'wcs_form_api_url': wcs_request.wcs_form_api_url, + 'wcs_form_number': wcs_request.wcs_form_number, + 'uuid': wcs_request.uuid, + 'payload': wcs_request.payload, + 'result': wcs_request.result, + 'status': wcs_request.status, + } + } + smart_request = wcs_request.smart_requests.create(payload=payload) + self.add_job( + 'update_intervention_job', + id=smart_request.id, + natural_id='smart-request-%s' % smart_request.id, + )
Mis à jour par Nicolas Roche il y a plus de 2 ans
- Statut changé de Solution proposée à En cours
Ok, j'entends ce que tu proposes :
On déclenche le trigger 'hooks/update_intervention/' qui va donner lieu à une unique action globale dans le workflow.Ce sera à la charge du statut dans lequel sautera cette action globale de distinguer soit
- que cet appel fait suite à une création asynchrone
(en détectant la présence de creation_response dans le payload reçu par wcs) - qu'il s'agit d'une demande de mise à jour de smart
(avec data de présent dans le payload reçu par wcs)
Mis à jour par Nicolas Roche il y a plus de 2 ans
- Fichier 0003-toulouse_smart-trigger-wcs-when-intervention-is-crea.patch 0003-toulouse_smart-trigger-wcs-when-intervention-is-crea.patch ajouté
- Fichier 0002-test-remove-dupplicated-code-57669.patch 0002-test-remove-dupplicated-code-57669.patch ajouté
- Fichier 0001-toulouse_smart-correct-help-text-on-uuid-parameter-5.patch 0001-toulouse_smart-correct-help-text-on-uuid-parameter-5.patch ajouté
- Statut changé de En cours à Solution proposée
Fait : on retrouve bien l'id smart dans les données envoyées au trigger wcs "update_intervention" faisant suite à une création asynchrone.form_workflow_data_update_intervention_creation_response_result_id
(dans l'inspecteur)
Mis à jour par Benjamin Dauvergne il y a plus de 2 ans
Nicolas Roche a écrit :
Ok, j'entends ce que tu proposes :
...
On peut utiliser les trigger comme déclencheur d'un saut classique, pas besoin d'action globale, mais oui c'est l'idée.
Mis à jour par Benjamin Dauvergne il y a plus de 2 ans
- Statut changé de Solution proposée à Solution validée
dupplicated -> duplicated
Mis à jour par Nicolas Roche il y a plus de 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 155775498cb6281a720a7fa95733ce9cdb3d6883 Author: Nicolas ROCHE <nroche@entrouvert.com> Date: Mon Oct 11 15:45:39 2021 +0200 toulouse_smart: trigger wcs when intervention is created async (#57669) commit 340cf3d8b00cce44a2d29d89b8eb04b8b9258d87 Author: Nicolas ROCHE <nroche@entrouvert.com> Date: Mon Oct 11 15:45:03 2021 +0200 test: remove duplicated code (#57669) commit d82af1c290444c4caeb9a975810e830074b405eb Author: Nicolas ROCHE <nroche@entrouvert.com> Date: Thu Oct 7 16:48:37 2021 +0200 toulouse_smart: correct help text on uuid parameter (#57669)
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Statut changé de Résolu (à déployer) à Solution déployée
toulouse_smart: correct help text on uuid parameter (#57669)