PUT user-profile returns 500 when user_id is missing from the payload
Maintainer antworten meist innerhalb von 2 Tagen
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 1/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 88/100
Rechercherichtung
Der Fehler liegt in update_user_profile in policyengine_api/routes/user_profile_routes.py, wo payload.pop("user_id") keinen Default hat und KeyError auslöst. Lies den bestehenden Zweig für ein null-user_id, der 400 mit „Payload must include user_id“ zurückgibt, und lass den Fall eines fehlenden Schlüssels demselben Pfad folgen. Fertig ist es, wenn ein Payload ohne user_id dieselbe 400 wie ein null-Wert erhält, mit Tests für beide Fälle.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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.
- Vorherrschende Sprache
- Python
- Sterne
- 18
- Forks
- 33
- Ø Merge
- 1 T. 19 Std.
- Gemergte PRs (30 T.)
- 26
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus PolicyEngine/policyengine-api
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 82/100
PolicyEngine/policyengine-api#3910 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Register weighted-microdata rules: weights aren't valuesEvtl. vergeben @anth-volk hat das vor 1 Tag übernommen. Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 18/100
PolicyEngine/policyengine-api#3937 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Remove the unused economy comparison moduleEvtl. vergeben @anth-volk hat das vor 1 Tag übernommen. Offen
Schwierigkeit 3/5 Ein halber Tag Anfängerfreundlichkeit 18/100
PolicyEngine/policyengine-api#3935 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Refactor tests, scripts and the rules tool, then select every ruff rule (ALL)Evtl. vergeben @anth-volk hat das vor 1 Tag übernommen. Offen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 15/100
PolicyEngine/policyengine-api#3931 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Refactor the application package within ruff's complexity limitsEvtl. vergeben @anth-volk hat das vor 1 Tag übernommen. Offen
Schwierigkeit 4/5 Über eine Woche Anfängerfreundlichkeit 18/100
PolicyEngine/policyengine-api#3930 ·
Maintainer antworten meist innerhalb von 2 Tagen
Alle Issues in PolicyEngine/policyengine-api
Ähnliche Issues
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
jbacalso24/mimry#291 ·
Maintainer antworten meist innerhalb von 1 Tag
-
good first issue
Schwierigkeit 2/5 Unter einer Stunde Anfängerfreundlichkeit 82/100
eli-alvarado/us-watchlist-alerts#14 ·
Maintainer antworten meist innerhalb von 1 Tag
-
from-review-extraction python severity:nit
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 80/100
LearningCircuit/local-deep-research#7462 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
cathrynlavery/diagram-design#441 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
[Cleanup] Include the public header in work_split.cppEvtl. vergeben @blozano-tt hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
tenstorrent/tt-metal#60850 ·
Maintainer antworten meist innerhalb von 1 Tag