fix webhooks get response

This commit is contained in:
Mathieu Broillet 2025-08-28 11:19:54 +02:00
parent 144ab7d712
commit 1dabffeec9
Signed by: mathieub
GPG Key ID: 4428608CDA3A98D3
2 changed files with 7 additions and 4 deletions

View File

@ -230,9 +230,10 @@ async def fake_list_user_webhooks(request: Request, _=host_required([Hosts.CLIEN
upstream_response = await call_official(request, request.url.path.lstrip("/"))
upstream_response.status_code = 200
data_override = [{"url": "https://webhooks.are.not.supported.because.plex.sends.them/not/your/server"}]
return await return_edited_response(upstream_response, data_override)
return await return_edited_response(upstream_response, data_override, ignore_official_data=True)
@app.get("/favicon.ico")

View File

@ -65,7 +65,8 @@ async def call_official(request: Request, path: str) -> httpx.Response:
async def return_edited_response(
response: httpx.Response,
new_content: dict | bytes | list | str | None = None
new_content: dict | bytes | list | str | None = None,
ignore_official_data: bool = False
) -> Response:
"""
Return possibly modified response.
@ -82,8 +83,9 @@ async def return_edited_response(
data = response.json()
if isinstance(new_content, dict): # allow overrides
data = {**data, **new_content}
if isinstance(data, list) and isinstance(new_content, list):
data = new_content if ignore_official_data else {**data, **new_content}
if (isinstance(data, list) or ignore_official_data) and isinstance(new_content, list):
data = new_content # replace entire list
return JSONResponse(