change login flow

This commit is contained in:
Diogo Sousa
2023-01-20 16:55:11 +00:00
parent e9d8ee56e6
commit 00a11f0354
2 changed files with 20 additions and 8 deletions

View File

@@ -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)

View File

@@ -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():