Skip to content
Open
Show file tree
Hide file tree
Changes from all 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.clear_session(sessionID)
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