mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-10-28 13:01:38 +00:00
* init * updates * Update loggers.py * Update loggers.py * sdk handling * feature flag * fix MOCKING_USER_PATH for windows * Update loggers.py * Update plotly.html * updates * Update parent_classes.py * Update plotly.html * add posthog to deps * Update loggers.py
86 lines
2.0 KiB
Python
86 lines
2.0 KiB
Python
from typing import Dict
|
|
|
|
from pydantic.dataclasses import dataclass
|
|
|
|
from openbb_terminal.base_helpers import openbb_posthog
|
|
from openbb_terminal.core.models import BaseModel
|
|
|
|
|
|
@dataclass(config=dict(validate_assignment=True, frozen=True))
|
|
class ProfileModel(BaseModel):
|
|
"""Data model for profile."""
|
|
|
|
token_type: str = ""
|
|
token: str = ""
|
|
uuid: str = ""
|
|
email: str = ""
|
|
username: str = ""
|
|
remember: bool = True
|
|
|
|
def load_user_info(self, session: dict, email: str, remember: bool):
|
|
"""Load user info from login info.
|
|
|
|
Parameters
|
|
----------
|
|
session : dict
|
|
The login info.
|
|
email : str
|
|
The email.
|
|
remember : bool
|
|
Remember the session.
|
|
"""
|
|
self.token_type = session.get("token_type", "")
|
|
self.token = session.get("access_token", "")
|
|
self.uuid = session.get("uuid", "")
|
|
self.email = email
|
|
self.username = self.email[: self.email.find("@")]
|
|
self.remember = remember
|
|
openbb_posthog.identify(self.uuid, {"email": self.email})
|
|
|
|
def get_uuid(self) -> str:
|
|
"""Get uuid.
|
|
|
|
Returns
|
|
-------
|
|
str
|
|
The uuid.
|
|
"""
|
|
return self.uuid
|
|
|
|
def get_token(self) -> str:
|
|
"""Get token.
|
|
|
|
Returns
|
|
-------
|
|
str
|
|
The token.
|
|
"""
|
|
return self.token
|
|
|
|
def get_session(self) -> Dict[str, str]:
|
|
"""Get session info.
|
|
|
|
Returns
|
|
-------
|
|
Dict[str, str]
|
|
The session info.
|
|
"""
|
|
return {
|
|
"token_type": self.token_type,
|
|
"access_token": self.token,
|
|
"uuid": self.uuid,
|
|
}
|
|
|
|
def get_auth_header(self) -> str:
|
|
"""Get auth header.
|
|
|
|
Returns
|
|
-------
|
|
str
|
|
The auth header, e.g. "Bearer <token>".
|
|
"""
|
|
return f"{self.token_type.title()} {self.token}"
|
|
|
|
def __repr__(self) -> str: # pylint: disable=useless-super-delegation
|
|
return super().__repr__()
|