fix schemas for admin

This commit is contained in:
Tiago vasconcelos 2022-05-16 12:29:58 +01:00 committed by dni ⚡
parent 3f38a9094b
commit 0a29fb7360
3 changed files with 27 additions and 22 deletions

View File

@ -55,8 +55,12 @@ def bundle_vendored():
async def get_admin_settings():
from lnbits.extensions.admin.models import Admin
async with core_db.connect() as conn:
try:
ext_db = importlib.import_module(f"lnbits.extensions.admin").db
except:
return False
async with ext_db.connect() as conn:
if conn.type == SQLITE:
exists = await conn.fetchone(
"SELECT * FROM sqlite_master WHERE type='table' AND name='admin'"
@ -65,11 +69,12 @@ async def get_admin_settings():
exists = await conn.fetchone(
"SELECT * FROM information_schema.tables WHERE table_name = 'admin'"
)
print("EXISTS", exists)
if not exists:
return False
row = await conn.fetchone("SELECT * from admin")
row = await conn.fetchone("SELECT * from admin.admin")
return Admin(**row) if row else None
async def migrate_databases():

View File

@ -29,30 +29,30 @@ async def update_admin(user: str, **kwargs) -> Admin:
q = ", ".join([f"{field[0]} = ?" for field in kwargs.items()])
# print("UPDATE", q)
await db.execute(
f'UPDATE admin SET {q} WHERE "user" = ?', (*kwargs.values(), user)
f'UPDATE admin.admin SET {q} WHERE "user" = ?', (*kwargs.values(), user)
)
row = await db.fetchone('SELECT * FROM admin WHERE "user" = ?', (user,))
row = await db.fetchone('SELECT * FROM admin.admin WHERE "user" = ?', (user,))
assert row, "Newly updated settings couldn't be retrieved"
return Admin(**row) if row else None
async def get_admin() -> Admin:
row = await db.fetchone("SELECT * FROM admin")
row = await db.fetchone("SELECT * FROM admin.admin")
return Admin(**row) if row else None
async def update_funding(data: Funding) -> Funding:
await db.execute(
"""
UPDATE funding
UPDATE admin.funding
SET backend_wallet = ?, endpoint = ?, port = ?, read_key = ?, invoice_key = ?, admin_key = ?, cert = ?, balance = ?, selected = ?
WHERE id = ?
""",
(data.backend_wallet, data.endpoint, data.port, data.read_key, data.invoice_key, data.admin_key, data.cert, data.balance, data.selected, data.id,),
)
row = await db.fetchone('SELECT * FROM funding WHERE "id" = ?', (data.id,))
row = await db.fetchone('SELECT * FROM admin.funding WHERE "id" = ?', (data.id,))
assert row, "Newly updated settings couldn't be retrieved"
return Funding(**row) if row else None
async def get_funding() -> List[Funding]:
rows = await db.fetchall("SELECT * FROM funding")
rows = await db.fetchall("SELECT * FROM admin.funding")
return [Funding(**row) for row in rows]

View File

@ -96,7 +96,7 @@ async def m001_create_admin_table(db):
await db.execute(
"""
CREATE TABLE IF NOT EXISTS admin (
CREATE TABLE IF NOT EXISTS admin.admin (
"user" TEXT PRIMARY KEY,
admin_users TEXT,
allowed_users TEXT,
@ -120,7 +120,7 @@ async def m001_create_admin_table(db):
)
await db.execute(
"""
INSERT INTO admin (
INSERT INTO admin.admin (
"user",
admin_users,
allowed_users,
@ -171,7 +171,7 @@ async def m001_create_funding_table(db):
# Make the funding table, if it does not already exist
await db.execute(
"""
CREATE TABLE IF NOT EXISTS funding (
CREATE TABLE IF NOT EXISTS admin.funding (
id TEXT PRIMARY KEY,
backend_wallet TEXT,
endpoint TEXT,
@ -188,7 +188,7 @@ async def m001_create_funding_table(db):
await db.execute(
"""
INSERT INTO funding (id, backend_wallet, endpoint, selected)
INSERT INTO admin.funding (id, backend_wallet, endpoint, selected)
VALUES (?, ?, ?, ?)
""",
(
@ -200,7 +200,7 @@ async def m001_create_funding_table(db):
)
await db.execute(
"""
INSERT INTO funding (id, backend_wallet, endpoint, admin_key, selected)
INSERT INTO admin.funding (id, backend_wallet, endpoint, admin_key, selected)
VALUES (?, ?, ?, ?, ?)
""",
(
@ -214,7 +214,7 @@ async def m001_create_funding_table(db):
await db.execute(
"""
INSERT INTO funding (id, backend_wallet, endpoint, admin_key, selected)
INSERT INTO admin.funding (id, backend_wallet, endpoint, admin_key, selected)
VALUES (?, ?, ?, ?, ?)
""",
(
@ -228,7 +228,7 @@ async def m001_create_funding_table(db):
await db.execute(
"""
INSERT INTO funding (id, backend_wallet, endpoint, port, admin_key, cert, selected)
INSERT INTO admin.funding (id, backend_wallet, endpoint, port, admin_key, cert, selected)
VALUES (?, ?, ?, ?, ?, ?, ?)
""",
(
@ -244,7 +244,7 @@ async def m001_create_funding_table(db):
await db.execute(
"""
INSERT INTO funding (id, backend_wallet, endpoint, admin_key, cert, selected)
INSERT INTO admin.funding (id, backend_wallet, endpoint, admin_key, cert, selected)
VALUES (?, ?, ?, ?, ?, ?)
""",
(
@ -259,7 +259,7 @@ async def m001_create_funding_table(db):
await db.execute(
"""
INSERT INTO funding (id, backend_wallet, endpoint, admin_key, cert, selected)
INSERT INTO admin.funding (id, backend_wallet, endpoint, admin_key, cert, selected)
VALUES (?, ?, ?, ?, ?, ?)
""",
(
@ -274,7 +274,7 @@ async def m001_create_funding_table(db):
await db.execute(
"""
INSERT INTO funding (id, backend_wallet, endpoint, admin_key, selected)
INSERT INTO admin.funding (id, backend_wallet, endpoint, admin_key, selected)
VALUES (?, ?, ?, ?, ?)
""",
(
@ -288,7 +288,7 @@ async def m001_create_funding_table(db):
await db.execute(
"""
INSERT INTO funding (id, backend_wallet, endpoint, admin_key, selected)
INSERT INTO admin.funding (id, backend_wallet, endpoint, admin_key, selected)
VALUES (?, ?, ?, ?, ?)
""",
(
@ -302,7 +302,7 @@ async def m001_create_funding_table(db):
await db.execute(
"""
INSERT INTO funding (id, backend_wallet, endpoint, admin_key, selected)
INSERT INTO admin.funding (id, backend_wallet, endpoint, admin_key, selected)
VALUES (?, ?, ?, ?, ?)
""",
(
@ -317,7 +317,7 @@ async def m001_create_funding_table(db):
## PLACEHOLDER FOR ECLAIR WALLET
# await db.execute(
# """
# INSERT INTO funding (id, backend_wallet, endpoint, admin_key, selected)
# INSERT INTO admin.funding (id, backend_wallet, endpoint, admin_key, selected)
# VALUES (?, ?, ?, ?, ?)
# """,
# (