diff --git a/openbb_terminal/account/login_controller.py b/openbb_terminal/account/login_controller.py index f53b5ba6d69..a73073ffa2c 100644 --- a/openbb_terminal/account/login_controller.py +++ b/openbb_terminal/account/login_controller.py @@ -73,10 +73,13 @@ def main(): else: load_user_info(login_info) status = fetch_user_configs() - if isinstance(status, Success): + if status == 200: apply_configs() terminal_controller.parse_args_and_run() - if isinstance(status, Failure): + elif isinstance(status, Failure): + login_prompt(welcome=False) + else: + console.print("\n[red]Invalid login.[/red]") login_prompt(welcome=False) diff --git a/openbb_terminal/account/login_model.py b/openbb_terminal/account/login_model.py index b0bbe157803..c60e08f9b16 100644 --- a/openbb_terminal/account/login_model.py +++ b/openbb_terminal/account/login_model.py @@ -4,15 +4,16 @@ import json from typing import Union import jwt import requests +from openbb_terminal.base_helpers import strtobool from openbb_terminal.core.config.paths import SETTINGS_DIRECTORY from openbb_terminal.rich_config import console from openbb_terminal import feature_flags as obbff -from openbb_terminal.account.statics import BASE_URL, Success, Failure +from openbb_terminal.account.statics import BASE_URL, Failure from openbb_terminal.account import user from openbb_terminal import config_terminal as cfg -def fetch_user_configs() -> Union[Success, Failure]: +def fetch_user_configs() -> Union[int, Failure]: try: response = requests.get( url=BASE_URL + "terminal/user", @@ -20,20 +21,28 @@ def fetch_user_configs() -> Union[Success, Failure]: ) if response.status_code == 200: user.CONFIGS = json.loads(response.content) - return Success("[green]\nFetched user configurations.[/green]") - return Failure("[red]\nFailed to fetch configurations.[/red]") + console.print("[green]\nFetched user configurations.[/green]") + return response.status_code + console.print("[red]\nFailed to fetch configurations.[/red]") + return response.status_code except requests.exceptions.ConnectionError: return Failure("[red]\nConnection error.[/red]") except Exception: - return Failure("[red]\nFailed to apply configurations.[/red]") + return Failure("[red]\nFailed to fetch configurations.[/red]") def apply_configs(): """Apply configurations.""" + console.print(user.CONFIGS, style="red") if user.CONFIGS: settings = user.CONFIGS.get("features_settings", {}) for k, v in settings.items(): - setattr(obbff, k, v) + if hasattr(obbff, k): + if isinstance(getattr(obbff, k), int): + setattr(obbff, k, strtobool(v)) + else: + console.print("string", k, type(getattr(obbff, k))) + setattr(obbff, k, v) keys = user.CONFIGS.get("features_keys", {}) for k, v in keys.items():