peter
66f4ac30d0
refactor(api): Pydantic request models for plex routes + status unification (R6 S1b)
All 14 plex payload:dict endpoints typed (watch-link, collections, native
playlists, item/show/season state & progress). Shared PlexItemKeysIn (bulk add/
remove/reorder) and WatchedIn (show/season). item_progress's manual int()+400
becomes a 422 on a non-number.
Status-code unification (ROADMAP S1):
- the 5 collection write-failure 502s → 422, matching the house "external write
failed" convention (playlists' YouTube 422). The image/subtitle proxy-fetch 502s
stay (genuine gateway fetches).
- the field-validation 422s ("title is required", "title and item_rating_key are
required") → 400, matching every other module's required-field 400.
Ends S1b: no `payload: dict` remains in app/routes. Gate: ruff clean, pytest 164.
2026-07-26 05:08:27 +02:00
..
2026-07-24 01:50:50 +02:00
2026-07-24 04:52:41 +02:00
2026-07-26 05:08:27 +02:00
2026-06-14 04:40:22 +02:00
2026-07-24 04:44:20 +02:00
2026-07-23 22:36:33 +02:00
2026-06-11 01:01:37 +02:00
2026-07-12 07:47:07 +02:00
2026-07-26 04:17:08 +02:00
2026-07-12 07:32:41 +02:00
2026-07-06 07:14:28 +02:00
2026-07-12 04:34:07 +02:00
2026-07-24 04:44:20 +02:00
2026-07-25 18:22:07 +02:00
2026-07-21 21:47:26 +02:00
2026-06-18 04:01:10 +02:00
2026-06-30 02:52:44 +02:00
2026-06-16 09:17:14 +02:00
2026-06-25 22:05:35 +02:00
2026-07-23 03:50:04 +02:00
2026-07-11 21:26:39 +02:00
2026-06-26 03:15:36 +02:00
2026-07-12 07:32:41 +02:00
2026-07-22 02:48:16 +02:00
2026-07-23 03:38:57 +02:00
2026-07-26 04:25:40 +02:00
2026-07-24 04:44:20 +02:00