39 lines
974 B
Python
39 lines
974 B
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
from typing import Self, Optional
|
|
from Interfaces.Application.AnPInterface import AnPInterface
|
|
from Models.SessionModel import SessionModel
|
|
|
|
class SessionsManager:
|
|
|
|
def __init__(self:Self, anp:AnPInterface) -> None:
|
|
|
|
self.anp:AnPInterface = anp
|
|
self.__sessions:dict[str, SessionModel] = {}
|
|
|
|
self.update()
|
|
|
|
def update(self:Self) -> None:pass
|
|
|
|
def reset(self:Self) -> None:
|
|
|
|
self.__sessions = {}
|
|
|
|
self.update()
|
|
|
|
def get(self:Self, id:Optional[str] = None) -> SessionModel|None:
|
|
if id is None:
|
|
|
|
session:SessionModel = SessionModel(self.anp.unique_keys.get())
|
|
|
|
self.__sessions[session.id] = session
|
|
|
|
return session
|
|
return self.__sessions.get(id, None)
|
|
|
|
def remove(self:Self, id:str) -> bool:
|
|
if id in self.__sessions:
|
|
del self.__sessions[id]
|
|
return True
|
|
return False |