From c15df62c17a5583126ead5565b4849300f988a5a Mon Sep 17 00:00:00 2001 From: Damir Modyarov Date: Mon, 7 Aug 2023 23:06:37 +0300 Subject: [PATCH] Provide session to worker to convert it to user id --- redirect/app.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/redirect/app.py b/redirect/app.py index be3b494..746dd02 100644 --- a/redirect/app.py +++ b/redirect/app.py @@ -1,7 +1,7 @@ from typing import Annotated import django -from fastapi import FastAPI, Depends, Header +from fastapi import FastAPI, Depends, Header, Cookie from fastapi.responses import RedirectResponse, HTMLResponse from sqlalchemy.orm import Session from starlette.requests import Request @@ -44,7 +44,13 @@ async def unicorn_exception_handler(request: Request, exc: LinkNotFoundException @app.get("/{slug}") -def redirect(slug: str, request: Request, db: Session = Depends(get_db), user_agent: Annotated[str | None, Header()] = None) -> RedirectResponse: +def redirect( + slug: str, + request: Request, + db: Session = Depends(get_db), + user_agent: Annotated[str | None, Header()] = None, + sessionid: Annotated[str | None, Cookie()] = None +) -> RedirectResponse: """Main route that redirects to a page based on the slug.""" if '+' in slug: return RedirectResponse(url=f'/tools/shortener/p/{slug.replace("+", "")}') @@ -56,7 +62,7 @@ def redirect(slug: str, request: Request, db: Session = Depends(get_db), user_ag "pk": link[0], "ip": request.client.host, "user_agent": user_agent, - "user_id": 0, + "token": sessionid, }, )