mirror of
https://github.com/lnbits/lnbits.git
synced 2025-09-27 12:26:19 +02:00
checks, redundant error handling
This commit is contained in:
@@ -29,7 +29,9 @@ async def update_wallet_balance(wallet_id: str, amount: int):
|
|||||||
|
|
||||||
async def get_admin_settings() -> AdminSettings:
|
async def get_admin_settings() -> AdminSettings:
|
||||||
row = await db.fetchone("SELECT * FROM admin.settings")
|
row = await db.fetchone("SELECT * FROM admin.settings")
|
||||||
admin_settings = AdminSettings(**row, lnbits_allowed_funding_sources=settings.lnbits_allowed_funding_sources)
|
admin_settings = AdminSettings(
|
||||||
|
**row, lnbits_allowed_funding_sources=settings.lnbits_allowed_funding_sources
|
||||||
|
)
|
||||||
for key, _ in row.items():
|
for key, _ in row.items():
|
||||||
if hasattr(admin_settings, key):
|
if hasattr(admin_settings, key):
|
||||||
setattr(admin_settings, key, getattr(settings, key))
|
setattr(admin_settings, key, getattr(settings, key))
|
||||||
@@ -38,7 +40,7 @@ async def get_admin_settings() -> AdminSettings:
|
|||||||
|
|
||||||
async def update_admin_settings(data: UpdateSettings) -> Optional[AdminSettings]:
|
async def update_admin_settings(data: UpdateSettings) -> Optional[AdminSettings]:
|
||||||
fields = []
|
fields = []
|
||||||
for key, value in data.items():
|
for key, value in data.dict().items():
|
||||||
if not key in readonly_variables:
|
if not key in readonly_variables:
|
||||||
setattr(settings, key, value)
|
setattr(settings, key, value)
|
||||||
if type(value) == list:
|
if type(value) == list:
|
||||||
|
@@ -5,7 +5,6 @@ from pydantic import BaseModel, validator
|
|||||||
|
|
||||||
|
|
||||||
class UpdateSettings(BaseModel):
|
class UpdateSettings(BaseModel):
|
||||||
|
|
||||||
@validator(
|
@validator(
|
||||||
"lnbits_admin_users",
|
"lnbits_admin_users",
|
||||||
"lnbits_allowed_users",
|
"lnbits_allowed_users",
|
||||||
|
@@ -10,7 +10,12 @@ from lnbits.extensions.admin import admin_ext
|
|||||||
from lnbits.extensions.admin.models import AdminSettings, UpdateSettings
|
from lnbits.extensions.admin.models import AdminSettings, UpdateSettings
|
||||||
from lnbits.server import server_restart
|
from lnbits.server import server_restart
|
||||||
|
|
||||||
from .crud import delete_admin_settings, get_admin_settings, update_admin_settings, update_wallet_balance
|
from .crud import (
|
||||||
|
delete_admin_settings,
|
||||||
|
get_admin_settings,
|
||||||
|
update_admin_settings,
|
||||||
|
update_wallet_balance,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@admin_ext.get(
|
@admin_ext.get(
|
||||||
|
@@ -10,7 +10,6 @@ from loguru import logger
|
|||||||
from pydantic import BaseSettings, Field, validator
|
from pydantic import BaseSettings, Field, validator
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def list_parse_fallback(v):
|
def list_parse_fallback(v):
|
||||||
try:
|
try:
|
||||||
return json.loads(v)
|
return json.loads(v)
|
||||||
@@ -200,12 +199,7 @@ def set_cli_settings(**kwargs):
|
|||||||
|
|
||||||
async def check_admin_settings():
|
async def check_admin_settings():
|
||||||
if settings.lnbits_admin_ui:
|
if settings.lnbits_admin_ui:
|
||||||
try:
|
ext_db = importlib.import_module(f"lnbits.extensions.admin").db
|
||||||
ext_db = importlib.import_module(f"lnbits.extensions.admin").db
|
|
||||||
except:
|
|
||||||
logger.error("could not import module lnbits.extensions.admin database")
|
|
||||||
raise
|
|
||||||
|
|
||||||
async with ext_db.connect() as db:
|
async with ext_db.connect() as db:
|
||||||
row = await db.fetchone("SELECT * FROM admin.settings")
|
row = await db.fetchone("SELECT * FROM admin.settings")
|
||||||
|
|
||||||
@@ -218,15 +212,17 @@ async def check_admin_settings():
|
|||||||
|
|
||||||
# setting settings from database into memory
|
# setting settings from database into memory
|
||||||
from lnbits.extensions.admin.models import AdminSettings
|
from lnbits.extensions.admin.models import AdminSettings
|
||||||
sets = AdminSettings(**row, lnbits_allowed_funding_sources=settings.lnbits_allowed_funding_sources)
|
|
||||||
|
sets = AdminSettings(
|
||||||
|
**row,
|
||||||
|
lnbits_allowed_funding_sources=settings.lnbits_allowed_funding_sources,
|
||||||
|
)
|
||||||
for key, value in sets.dict().items():
|
for key, value in sets.dict().items():
|
||||||
if not key in readonly_variables:
|
if not key in readonly_variables:
|
||||||
try:
|
try:
|
||||||
setattr(settings, key, value)
|
setattr(settings, key, value)
|
||||||
except:
|
except:
|
||||||
logger.error(
|
logger.error(f"error overriding setting: {key}, value: {value}")
|
||||||
f"error overriding setting: {key}, value: {value}"
|
|
||||||
)
|
|
||||||
|
|
||||||
# printing settings for debugging
|
# printing settings for debugging
|
||||||
logger.debug(f"Admin settings:")
|
logger.debug(f"Admin settings:")
|
||||||
@@ -235,12 +231,9 @@ async def check_admin_settings():
|
|||||||
|
|
||||||
http = "https" if settings.lnbits_force_https else "http"
|
http = "https" if settings.lnbits_force_https else "http"
|
||||||
user = settings.lnbits_admin_users[0]
|
user = settings.lnbits_admin_users[0]
|
||||||
admin_url = (
|
admin_url = f"{http}://{settings.host}:{settings.port}/wallet?usr={user}"
|
||||||
f"{http}://{settings.host}:{settings.port}/wallet?usr={user}"
|
|
||||||
)
|
|
||||||
logger.success(f"✔️ Access admin user account at: {admin_url}")
|
logger.success(f"✔️ Access admin user account at: {admin_url}")
|
||||||
|
|
||||||
|
|
||||||
# callback for saas
|
# callback for saas
|
||||||
if (
|
if (
|
||||||
settings.lnbits_saas_callback
|
settings.lnbits_saas_callback
|
||||||
@@ -286,9 +279,7 @@ async def create_admin_settings(db):
|
|||||||
v = values.rstrip(",")
|
v = values.rstrip(",")
|
||||||
sql = f"INSERT INTO admin.settings ({q}) VALUES ({v})"
|
sql = f"INSERT INTO admin.settings ({q}) VALUES ({v})"
|
||||||
await db.execute(sql)
|
await db.execute(sql)
|
||||||
logger.warning(
|
logger.warning("initialized admin.settings from enviroment variables.")
|
||||||
"initialized admin.settings from enviroment variables."
|
|
||||||
)
|
|
||||||
row = await db.fetchone("SELECT * FROM admin.settings")
|
row = await db.fetchone("SELECT * FROM admin.settings")
|
||||||
assert row, "Newly updated settings couldn't be retrieved"
|
assert row, "Newly updated settings couldn't be retrieved"
|
||||||
return row
|
return row
|
||||||
|
Reference in New Issue
Block a user