diff --git a/app/models.py b/app/models.py index b012deb..02a2f6e 100644 --- a/app/models.py +++ b/app/models.py @@ -63,10 +63,13 @@ class SessionResponse(BaseModel): popup_form: Optional[str] = None signup_form_id: Optional[str] = None popup_form_id: Optional[str] = None + session_occurrence_id: Optional[str] = None class UserSession(BaseModel): user_id: str + session_id: str session_occurrence_id: int - is_user_valid: bool + user_activity_type: str + user_type: str data: Optional[Dict] = {} diff --git a/app/router/session_occurrence.py b/app/router/session_occurrence.py index 9c94b0e..3c616ed 100644 --- a/app/router/session_occurrence.py +++ b/app/router/session_occurrence.py @@ -95,6 +95,7 @@ async def get_session_occurrence_data(request: Request): response = requests.get( session_occurrence_db_url, params=query_params, headers=db_request_token() ) + if response.status_code == 200: if len(response.json()) != 0: session_occurrence_data = response.json() @@ -112,7 +113,9 @@ async def get_session_occurrence_data(request: Request): session_data = response.json()[0] if session_data["is_active"]: session_data["is_session_open"] = True - + session_data[ + "session_occurrence_id" + ] = matched_session_occurrences[0]["id"] return session_data return {"is_session_open": False} raise HTTPException( diff --git a/app/router/user_session.py b/app/router/user_session.py index c2d347a..d007e10 100644 --- a/app/router/user_session.py +++ b/app/router/user_session.py @@ -4,14 +4,29 @@ from datetime import datetime from routes import user_session_db_url from helpers import db_request_token, is_response_valid, is_response_empty +from router import student, session, user +from request import build_request router = APIRouter(prefix="/user-session", tags=["User-Session"]) @router.post("/") -def user_session(user_session: UserSession): +async def user_session(user_session: UserSession): query_params = user_session.dict() query_params["timestamp"] = datetime.now().isoformat() + + if query_params["user_type"] == "student": + user_id_response = student.get_students( + build_request(query_params={"student_id": query_params["user_id"]}) + ) + + query_params["user_id"] = user_id_response[0]["user"]["id"] + + session_pk_id_response = await session.get_session( + build_request(query_params={"session_id": query_params["session_id"]}) + ) + query_params["session_id"] = session_pk_id_response[0]["id"] + response = requests.post( user_session_db_url, json=query_params, headers=db_request_token() )