Bug #38306
API - impossibe de déplacer une réservation sur plusieurs évènements à cause du comptage des places
0%
Description
En faisant tout en un seul appel avec cancel_booking_id
, ça échoue avec "cancel booking: count is different".
Parce ce que ce qui est comparé c'est un count
passé dans la query string ou dans le payload, par défaut 1, avec le nombre de places de la réservation à annuler, genre 2 si une personne s'est inscrite à deux évènements.
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Emmanuel Cazenave il y a plus de 4 ans
- Lié à Development #38208: Inscription à plusieurs évènements d'un même agenda d'un seul coup ajouté
Mis à jour par Emmanuel Cazenave il y a plus de 4 ans
Je ne vois pas ce qu'on pourrait apporter comme correction pertinente, parce qu'on peut très bien vouloir annuler une réservation à deux évènements au profit d'une réservation à trois évènements.
Mis à jour par Frédéric Péters il y a plus de 4 ans
Je note parce que ce n'était pas instinctivement clair pour moi, on est sur fill_slots, dans lequel on passerait cancel_booking_id, qui pointerait vers une réservation contenant un nombre différents de places.
Et aujourd'hui, il y a vérification pour que cette action combinée d'annulation/réservation concerne le même nombre de places. Parce que c'est annuler/réserver, c'est le raccourci pour "déplacer".
Si le nombre de places est différents, si on veut annuler une réservation pour en reprendre une autre, il est toujours temps de faire deux appels, d'abord annuler puis réserver, et gérer ça côté workflow.
Ou on introduit un choix de politique de remplacement, pour pouvoir dire que le nombre de places doit rester identique (politique actuelle), peut diminuer, peut augmenter, peut changer.
Mis à jour par Emmanuel Cazenave il y a plus de 4 ans
A relire #33489#note-6, est-ce que tu avais une motivation particulière pour demander ce filet de sécurité sur le nombre de places ?
Ça m'avait paru raisonnable à moi aussi, mais sans penser particulièrement aux cas d'erreur concrets que ça viendrait prévenir. Et en y réfléchissant à nouveau maintenant, je n'en vois pas bien de quels embrouilles concrètes ça nous protège.
Mis à jour par Frédéric Péters il y a plus de 4 ans
À mon avis ça assurait que l'appel était fait "correctement", plutôt qu'avec un count absent et plouf une seule place annulée. (genre on modifie un workflow pour gérer la réservation de places et on modifie l'appel de création mais pas l'appel de remplacement); ça devait peut-être aussi éviter pas mal de questions genre "ça déborde vers la liste d'attente, quel comportement ?".
Mis à jour par Emmanuel Cazenave il y a plus de 4 ans
- Fichier 0001-api-disable-count-on-multiple-booking-38306.patch 0001-api-disable-count-on-multiple-booking-38306.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Assigné à mis à Emmanuel Cazenave
- Patch proposed changé de Non à Oui
Quand tu disais "politique", j'imaginais quelque chose de paramétrable dans l'UI etc, et ça me semblait trop lourd juste pour ce cas d'usage.
Du coup j'étais parti sur la possibilité de débrayer la vérification du nombre de places grâce un paramètre lors de l'appel à fillslots, parce que les réservations multiples doivent de toute façon avoir leur workflow particulier et donc que la politique de vérification soit portée par le workflow, ça me semblait ok.
Jusqu'à finalement me convaincre de débrayer par défaut la vérif sur les réservations multiples, cf la simplicité du test, qui ne passe pas sans le patch.
Mis à jour par Emmanuel Cazenave il y a plus de 4 ans
- Fichier 0001-api-count-correctly-requested-places-on-multiple-boo.patch 0001-api-count-correctly-requested-places-on-multiple-boo.patch ajouté
Et finalement, juste arrêter de comparer des patates à des carottes, le nombre de places demandées lors de la réservation que l'on veut modifier peut se calculer correctement.
Mis à jour par Emmanuel Cazenave il y a plus de 4 ans
- Fichier 0001-api-count-correctly-requested-places-on-multiple-boo.patch 0001-api-count-correctly-requested-places-on-multiple-boo.patch ajouté
Rebasé sur black et blackisé.
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Statut changé de Solution proposée à Solution validée
Et pour mémoire pour la situation :
si tu réserves un seul évènement, tu as les réservations secondaires sur le même évènement que la réservation principale, si tu réserves sur deux évènement il y a réservation principale sur un évènement, réservation secondaire sur un autre.
Mis à jour par Emmanuel Cazenave il y a plus de 4 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 7c6528f3b8e9714aae07eef022a35fe7b4e9709e Author: Emmanuel Cazenave <ecazenave@entrouvert.com> Date: Mon Dec 16 16:50:38 2019 +0100 api: count correctly requested places on multiple booking (#38306)
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Statut changé de Résolu (à déployer) à Solution déployée
api: count correctly requested places on multiple booking (#38306)