mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-10-29 13:32:08 +00:00
* Update .gitignore * init * Update backend.py * Update main.tsx * Update no_import.py * Update session_controller.py * indents * adjust window size * update keys * re-add save session for pywry login * pop response keys on rename * walrus remember * use session username for profile * implement logout clearing of cookies * don't display welcome when logging in from `account` menu * Update session_model.py * Update session_model.py * customdata handler for charts * fix remember key * only slice data if chandlestick trace in data * Update profile_model.py * Update streamlit_run.py * Update plotly.html * test * Update loggers.py * updates * Update session_controller.py * Update session_controller.py * no longer need to call_hub for logout * tests * Update test_session_controller.py * Update profile_model.py * bump pywry, fix numbers passed as strings tables * update plotly frontend packages * formatting * Update backend.py * Update backend.py * change to prod * return on image export --------- Co-authored-by: James Maslek <jmaslek11@gmail.com>
87 lines
2.0 KiB
Python
87 lines
2.0 KiB
Python
from typing import Dict
|
|
|
|
from pydantic.dataclasses import dataclass
|
|
|
|
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 = ""
|
|
primary_usage: 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 = session.get("username", None) or email.split("@").pop(0)
|
|
self.primary_usage = session.get("primary_usage", "")
|
|
self.remember = remember
|
|
|
|
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__()
|