Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion task_template/app/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
app.state.limiter = limiter
app.add_exception_handler(RateLimitExceeded, _rate_limit_exceeded_handler)

app.add_middleware(SessionMiddleware, secret_key=secrets.token_hex(32), max_age=None)
app.add_middleware(SessionMiddleware, secret_key=secrets.token_hex(32), max_age=3600)
logger.info("Session middleware added")
app.include_router(task_router)
app.include_router(session_router)
Expand Down
15 changes: 15 additions & 0 deletions task_template/app/routers/session.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from fastapi import Depends, Request, APIRouter
from routers.router_models import SessionData
from grpc_server.queue_handler import queue_handler
from typing import Dict
import time
import hashlib
Expand Down Expand Up @@ -33,6 +34,7 @@ def get_session(request: Request) -> SessionData:
).hexdigest()
request.session["key"] = session_id
sessions[session_id] = SessionData(history=[], id=session_id)
logger.info("Session id here")
logger.info(sessions[session_id])
return sessions[session_id]

Expand All @@ -44,3 +46,16 @@ def clear_session(request: Request):
else:
sessions.pop(session_id)
return True

@router.get("/onLoad")
async def on_page_load(
request: Request,
session: SessionData = Depends(get_session),
):
sessionID = session.id
if sessionID in sessions:
queue_handler.remove_response_queue(sessionID)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd recommend calling

Suggested change
queue_handler.remove_response_queue(sessionID)
queue_handler.clear_session(sessionID)

Also, I would put this into the task_router as a "/start" endpoint (corresponding to "/finish").

And, it would probably be good, if we ensure, that other endpoints don't work if there is no session, with only this endpoint creating sessions. This is not strictly necessary, but would make sure, that all Tasks act somewhat similar.

clear_session(request)
logger.info("Session already exists. Deleting and getting a new one")
else:
logger.info("New session created")
15 changes: 14 additions & 1 deletion task_template/frontend_poetry/src/App.jsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { useState } from 'react';
import { useState, useEffect } from 'react';
import ConversationDisplay from "./components/ConversationDisplay";
import Dialogue from "./components/Dialogue";
import TaskDescription from "./components/TaskDescription";
Expand All @@ -8,6 +8,7 @@ import FeedbackForm from "./components/FeedbackForm";
import TutorialPopUp from './components/TutorialPopUp';
import ThemeForm from './components/ThemeForm';
import SurveyButton from './components/SurveyButton'
import axios from 'axios'
import "./index.css";

const App = () => {
Expand All @@ -18,6 +19,18 @@ const App = () => {
const [theme, setTheme] = useState("");
const [isLoading, setIsLoading] = useState(false);

useEffect(() => {
const onPageLoad = async() => {
try {
await axios.get('/api/v1/session/onLoad');
console.log("check session")
} catch (error) {
console.log(error)
}
}
onPageLoad();
}, [])

const addMessage = (message) => {
setMessages(prevMessages => prevMessages.concat(message));
};
Expand Down