filmatch-api / services /session.py
Gillenn's picture
Déploiement initial de Filmatch API
de3df6f
Raw
History Blame Contribute Delete
814 Bytes
import random
import string
from datetime import datetime, timedelta
from typing import Dict, Optional
_sessions: Dict[str, dict] = {}
def _gen_code() -> str:
return "".join(random.choices(string.ascii_uppercase + string.digits, k=6))
def create_session() -> dict:
code = _gen_code()
while code in _sessions:
code = _gen_code()
s = {
"code": code,
"created_at": datetime.now(),
"mood": "",
"users": {},
"status": "waiting",
"results": None,
}
_sessions[code] = s
return s
def get_session(code: str) -> Optional[dict]:
s = _sessions.get(code.upper())
if not s:
return None
if datetime.now() - s["created_at"] > timedelta(hours=24):
del _sessions[code.upper()]
return None
return s