Bug #13541
permettre regie_slug plutôt que regie_id dans l'appel webservice d'ajout au panier
0%
Description
(ou permettre au paramètre regie_id de recevoir le slug)
Le truc c'est qu'aujourd'hui sur un passage de recette en prod avec plusieurs régies, les identifiants ne vont pas nécessairement matcher.
Fichiers
Révisions associées
Historique
Mis à jour par Jean-Baptiste Jaillet il y a plus de 7 ans
Voilà c'est juste pour savoir si l'idée c'est ça (ou pas du tout).
Question aussi: cette fonction a l'air d'être appelée en POST pour on récupère les paramètres dans request.GET ?
Il y a peut-être une subtilité que je n'ai pas saisie.
Mis à jour par Jean-Baptiste Jaillet il y a plus de 7 ans
- Fichier 0001-csvdatasource-add-field-to-precise-sheet-in-file-and.patch ajouté
- Patch proposed changé de Non à Oui
Mis à jour par Jean-Baptiste Jaillet il y a plus de 7 ans
- Fichier
0001-csvdatasource-add-field-to-precise-sheet-in-file-and.patchsupprimé
Mis à jour par Jean-Baptiste Jaillet il y a plus de 7 ans
- Fichier 0001-lingo-allow-regie_slug-in-AddItemBasket-webservice-1.patch 0001-lingo-allow-regie_slug-in-AddItemBasket-webservice-1.patch ajouté
Décidément...
Mis à jour par Benjamin Dauvergne il y a plus de 7 ans
Un id ça doit forcément être un entier ou convertible en entier, donc ça risque de foirer si on y met un slug, je dirai qu'il faudrait plutôt prévoir un paramètre 'regie_slug'. Aussi il faudrait vérifier que regie_id est bien un entier avant de s'en servir, là on a un traceback potentiel sur une erreur.
Mis à jour par Jean-Baptiste Jaillet il y a plus de 7 ans
- Fichier 0001-lingo-allow-regie_slug-in-AddItemBasket-webservice-1.patch 0001-lingo-allow-regie_slug-in-AddItemBasket-webservice-1.patch ajouté
Ok, plus dans ce style alors? (j'ai pas mit de tests j'attends que la version soit bonne).
Mis à jour par Jean-Baptiste Jaillet il y a plus de 7 ans
- Fichier 0001-lingo-allow-regie_slug-in-AddItemBasket-webservice-1.patch 0001-lingo-allow-regie_slug-in-AddItemBasket-webservice-1.patch ajouté
j'ai modifs pour question de propreté.
Faire au plus simple, pas d'import inutile #python etc.
Mis à jour par Benjamin Dauvergne il y a plus de 7 ans
raise Exception
ça va faire un traceback aussi, faut renvoyer une HttpResponseBadRequest
au pire.
Je mettrai item.regie = Regie.objects.get(id=regie_id)
après le except, c'est plus clair que ça ne concerne que le int()
et sait-on jamais si Regies.objects.get()
se mettait à lever des ValueError
un jour on le verrait pas.
Mis à jour par Frédéric Péters il y a plus de 7 ans
Perso de plus en plus je n'ai pas envie d'expliquer "slug" et traduit/présente ça comme étant l'identifiant; et en terme d'API, pour prendre ce qui a été fait côté Chrono :
try: agenda = Agenda.objects.get(slug=agenda_identifier) except Agenda.DoesNotExist: try: # legacy access by agenda id agenda = Agenda.objects.get(id=int(agenda_identifier)) except ValueError: # ...
Ici donc, avoir le paramètre nommé regie_id, mais pouvoir prendre un slug, et si jamais ça échoue avoir un fallback legacy, identifié comme tel, qu'on pourra supprimer à l'occasion, ça me va très bien.
Et si ça ne match ni slug ni id, alors comme écrit Benjamin, ça ne doit pas lever une erreur 500.
Mis à jour par Jean-Baptiste Jaillet il y a plus de 7 ans
- Fichier 0001-lingo-allow-regie_slug-in-AddItemBasket-webservice-1.patch 0001-lingo-allow-regie_slug-in-AddItemBasket-webservice-1.patch ajouté
Hop du coup j'ai fait les modifs (toujours sans test, c'est pas un oubli).
Mis à jour par Frédéric Péters il y a plus de 7 ans
Je réunirais les deux exceptions dans le même except, avec comme unique message "Unknown regie". Ne pas oublier d'actualiser le message de commit.
Mis à jour par Jean-Baptiste Jaillet il y a plus de 7 ans
ok juste pour le message de commit je ne vois pas en quoi il n'est plus actuel ? On permet bien la prise en charge du slug non?
Mis à jour par Frédéric Péters il y a plus de 7 ans
"regie_slug" ça fait penser à un nom de paramètre; quelque chose comme "accept regie slug in add basket item regie_id parameter" plutôt.
Mis à jour par Jean-Baptiste Jaillet il y a plus de 7 ans
- Fichier 0001-lingo-allow-regie-s-slug-in-AddItemBasket-regie_id-p.patch 0001-lingo-allow-regie-s-slug-in-AddItemBasket-regie_id-p.patch ajouté
Hop j'ai regardé un peu pour les tests du coup je reviens à la question plus haut, tout ce que je fais est défini dans le post(), pour on prends les paramètres de request.GET.
Est ce que cette url est appelée en GET? (ou il faut fait du app.post(url, paramètre*))
Mis à jour par Frédéric Péters il y a plus de 7 ans
https://dev.entrouvert.org/projects/publik/wiki/Paiement contient la documentation. → l'appel est en POST, mais NameId et regie_id sont des paramètres passés dans l'URL.
Mis à jour par Jean-Baptiste Jaillet il y a plus de 7 ans
- Fichier 0001-lingo-allow-regie-s-slug-in-AddItemBasket-regie_id-p.patch 0001-lingo-allow-regie-s-slug-in-AddItemBasket-regie_id-p.patch ajouté
Voilà avec les tests.
Mis à jour par Frédéric Péters il y a plus de 7 ans
Pour les tests, ce serait mieux d'étendre test_add_amount_to_basket, qui a déjà sur sa fin un test de regie_id, à dupliquer pour qu'il soit appelé avec le slug de la régie.
Mis à jour par Jean-Baptiste Jaillet il y a plus de 7 ans
- Fichier 0001-lingo-allow-regie-s-slug-in-AddItemBasket-regie_id-p.patch 0001-lingo-allow-regie-s-slug-in-AddItemBasket-regie_id-p.patch ajouté
Ok, j'ai regroupé dans le test d'avant.
Mis à jour par Frédéric Péters il y a plus de 7 ans
Il faut utiliser un autre montant, pour être sûr de concerner uniquement la nouvelle entrée dans le panier.
Mis à jour par Jean-Baptiste Jaillet il y a plus de 7 ans
- Fichier 0001-lingo-allow-regie-s-slug-in-AddItemBasket-regie_id-p.patch 0001-lingo-allow-regie-s-slug-in-AddItemBasket-regie_id-p.patch ajouté
Voilà
Mis à jour par Frédéric Péters il y a plus de 7 ans
- Statut changé de En cours à Résolu (à déployer)
Poussé moi-même.
commit 8e948a6ab3f906895a5f3ca1b6d0fa6ad3902ecb Author: Jean-Baptiste Jaillet <jbjaillet@entrouvert.com> Date: Thu Nov 10 20:22:09 2016 +0100 lingo: allow regie's slug in AddItemBasket regie_id parameter (#13541)
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
lingo: allow regie's slug in AddItemBasket regie_id parameter (#13541)