aggiungta SessionManager

This commit is contained in:
AnouarElKihal 2025-08-02 04:08:11 +02:00
parent a7f82eebad
commit eb2ea45e16
2 changed files with 27 additions and 5 deletions

View file

@ -6,8 +6,6 @@ import requests
SPOTIFY_CLIENT_ID = os.getenv("SPOTIFY_CLIENT_ID")
SPOTIFY_CLIENT_SECRET = os.getenv("SPOTIFY_CLIENT_SECRET")
current_session = None
class SessionData():
__access_token: str
__refresh_token: str
@ -57,3 +55,28 @@ class SessionData():
return self.__access_token
class SessionManager():
__current_session: SessionData
__instance: "SessionManager"
def __new__(cls, *args, **kwargs):
if cls.__instance is None:
cls.__instance = super(SessionManager, cls).__new__(cls)
return cls.__instance
def __init__(self):
self.__current_session = None
@classmethod
def instance(cls):
return cls.__instance
def set_session(self, __current_session):
if self.__current_session is not None:
return
self.__current_session = __current_session
def get_current_session(self):
return self.__current_session

View file

@ -2,7 +2,7 @@ from fastapi import APIRouter, Request, Depends
from fastapi.responses import RedirectResponse
import requests
import os
from auth.session import SessionData, current_session
from auth.session import SessionData, SessionManager, current_session
music_router = APIRouter(prefix="/music")
@ -42,8 +42,7 @@ def callback(code: str):
expires_in = token_info.get("expires_in")
# Salva access_token in sessione o database per usi futuri
if current_session is None:
current_session = SessionData(access_token, refresh_token, expires_in)
SessionManager.instance().set_session(SessionData(access_token, refresh_token, expires_in))
return {}