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_ID = os.getenv("SPOTIFY_CLIENT_ID")
SPOTIFY_CLIENT_SECRET = os.getenv("SPOTIFY_CLIENT_SECRET") SPOTIFY_CLIENT_SECRET = os.getenv("SPOTIFY_CLIENT_SECRET")
current_session = None
class SessionData(): class SessionData():
__access_token: str __access_token: str
__refresh_token: str __refresh_token: str
@ -57,3 +55,28 @@ class SessionData():
return self.__access_token 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 from fastapi.responses import RedirectResponse
import requests import requests
import os import os
from auth.session import SessionData, current_session from auth.session import SessionData, SessionManager, current_session
music_router = APIRouter(prefix="/music") music_router = APIRouter(prefix="/music")
@ -42,8 +42,7 @@ def callback(code: str):
expires_in = token_info.get("expires_in") expires_in = token_info.get("expires_in")
# Salva access_token in sessione o database per usi futuri # Salva access_token in sessione o database per usi futuri
if current_session is None: SessionManager.instance().set_session(SessionData(access_token, refresh_token, expires_in))
current_session = SessionData(access_token, refresh_token, expires_in)
return {} return {}