From 833a446899b125b1114f573ccd36a0e741ebe154 Mon Sep 17 00:00:00 2001 From: Guillem Borrell Date: Wed, 12 Jun 2024 12:45:09 +0200 Subject: [PATCH] Save session when file is uploaded --- src/hellocomputer/routers/files.py | 11 ++++++++++- src/hellocomputer/routers/sessions.py | 13 ++----------- src/hellocomputer/static/index.html | 9 +++++---- src/hellocomputer/static/script.js | 24 ++++++++++++++++++++++++ 4 files changed, 41 insertions(+), 16 deletions(-) diff --git a/src/hellocomputer/routers/files.py b/src/hellocomputer/routers/files.py index 0af6552..da1057e 100644 --- a/src/hellocomputer/routers/files.py +++ b/src/hellocomputer/routers/files.py @@ -3,10 +3,12 @@ import aiofiles # import s3fs from fastapi import APIRouter, File, UploadFile from fastapi.responses import JSONResponse +from starlette.requests import Request from ..config import settings from ..db import StorageEngines from ..sessions import SessionDB +from ..users import OwnershipDB router = APIRouter() @@ -21,7 +23,7 @@ router = APIRouter() @router.post("/upload", tags=["files"]) -async def upload_file(file: UploadFile = File(...), sid: str = ""): +async def upload_file(request: Request, file: UploadFile = File(...), sid: str = ""): async with aiofiles.tempfile.NamedTemporaryFile("wb") as f: content = await file.read() await f.write(content) @@ -39,6 +41,13 @@ async def upload_file(file: UploadFile = File(...), sid: str = ""): .dump() ) + OwnershipDB( + StorageEngines.gcs, + gcs_access=settings.gcs_access, + gcs_secret=settings.gcs_secret, + bucket=settings.gcs_bucketname, + ).set_ownersip(request.session.get("user").get("email"), sid) + return JSONResponse( content={"message": "File uploaded successfully"}, status_code=200 ) diff --git a/src/hellocomputer/routers/sessions.py b/src/hellocomputer/routers/sessions.py index adc2532..f1446f1 100644 --- a/src/hellocomputer/routers/sessions.py +++ b/src/hellocomputer/routers/sessions.py @@ -16,17 +16,8 @@ router = APIRouter() @router.get("/new_session") -async def get_new_session(request: Request) -> str: - user_email = request.session.get("user").get("email") - ownership = OwnershipDB( - StorageEngines.gcs, - gcs_access=settings.gcs_access, - gcs_secret=settings.gcs_secret, - bucket=settings.gcs_bucketname, - ) - sid = str(uuid4()) - - return ownership.set_ownersip(user_email, sid) +async def get_new_session() -> str: + return str(uuid4()) @router.get("/greetings", response_class=PlainTextResponse) diff --git a/src/hellocomputer/static/index.html b/src/hellocomputer/static/index.html index 8465d3f..b4ee779 100644 --- a/src/hellocomputer/static/index.html +++ b/src/hellocomputer/static/index.html @@ -86,8 +86,9 @@ - @@ -100,8 +101,8 @@ -