PUT user-profile returns 500 when user_id is missing from the payload
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 1/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 88/100
Piste de recherche
Le bogue se trouve dans update_user_profile dans policyengine_api/routes/user_profile_routes.py, où payload.pop("user_id") n'a pas de valeur par défaut et lève KeyError. Lisez la branche existante pour un user_id nul qui renvoie 400 avec « Payload must include user_id » et faites suivre le même chemin au cas de clé absente. C'est terminé lorsqu'un payload sans user_id reçoit le même 400 qu'un payload à valeur nulle, avec des tests couvrant les deux cas.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
The PUT /<country_id>/user-profile route (update_user_profile in policyengine_api/routes/user_profile_routes.py) reads the ID with payload.pop("user_id"), with no default. A payload without a user_id key raises KeyError, which the generic error handler turns into a 500.
The route already returns 400 ("Payload must include user_id") when user_id is present but null, so a missing key should get the same 400.
Expected
A payload without user_id gives 400 with the same message as a null user_id, for example by using payload.pop("user_id", None). Add a test for both cases.
Notes
- Found while documenting the code for the ruff docstring rules; behaviour was left unchanged there.
- The route has a TODO pointing at #2054 (request validation), which is now closed.
- Langage dominant
- Python
- Étoiles
- 18
- Forks
- 33
- Merge moyen
- 1 j 15 h
- PR mergées (30 j)
- 18
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de PolicyEngine/policyengine-api
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 82/100
PolicyEngine/policyengine-api#3910 ·
Les mainteneurs répondent en général sous 1 jour
-
Enable ruff security, logging and debugging rules (S, T20, LOG, G, DTZ, ERA, TD, FIX, EXE)Peut-être pris @anth-volk l’a pris aujourd’hui. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 18/100
PolicyEngine/policyengine-api#3914 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 38/100
PolicyEngine/policyengine-api#3912 ·
Les mainteneurs répondent en général sous 1 jour
-
validate_country prints "Validating country" on every requestPeut-être pris @anth-volk l’a pris aujourd’hui. Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 25/100
PolicyEngine/policyengine-api#3909 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 Une demi-journée Accessibilité débutants 48/100
PolicyEngine/policyengine-api#3908 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de PolicyEngine/policyengine-api
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
onyx-dot-app/onyx#16016 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
black --check exits 0 and prints All done when a multi file run is interruptedPeut-être pris @jiteshgulati l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 2 jours
-
Non-positive worker counts wait for results without starting workersPeut-être pris @IlyaKhalafi l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
Les mainteneurs répondent en général sous 1 jour