refactor: more and more

This commit is contained in:
Vlad Stan
2023-01-18 17:38:51 +02:00
parent 77c17a2b63
commit 86c86958ae
5 changed files with 56 additions and 71 deletions
+34 -13
View File
@@ -6,6 +6,7 @@ from uuid import uuid4
from lnbits import bolt11
from lnbits.db import COCKROACH, POSTGRES, Connection
from lnbits.extension_manger import InstallableExtension
from lnbits.settings import AdminSettings, EditableSettings, SuperSettings, settings
from . import db
@@ -71,29 +72,39 @@ async def get_user(user_id: str, conn: Optional[Connection] = None) -> Optional[
async def add_installed_extension(
*,
ext_id: str,
version: str,
name: str,
active: bool,
meta: dict,
ext: InstallableExtension,
conn: Optional[Connection] = None,
) -> None:
meta = {
"installed_release": dict(ext.installed_release)
if ext.installed_release
else None,
"dependencies": ext.dependencies,
}
version = ext.installed_release.version if ext.installed_release else ""
await (conn or db).execute(
"""
INSERT INTO installed_extensions (id, version, name, active, meta) VALUES (?, ?, ?, ?, ?)
INSERT INTO installed_extensions (id, version, name, short_description, icon, icon_url, stars, meta) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
ON CONFLICT (id) DO
UPDATE SET (version, name, active, meta) = (?, ?, ?, ?)
UPDATE SET (version, name, short_description, icon, icon_url, stars, meta) = (?, ?, ?, ?, ?, ?, ?)
""",
(
ext_id,
ext.id,
version,
name,
active,
ext.name,
ext.short_description,
ext.icon,
ext.icon_url,
ext.stars,
json.dumps(meta),
version,
name,
active,
ext.name,
ext.short_description,
ext.icon,
ext.icon_url,
ext.stars,
json.dumps(meta),
),
)
@@ -132,6 +143,16 @@ async def get_installed_extension(ext_id: str, conn: Optional[Connection] = None
return dict(row)
async def get_installed_extensions(
conn: Optional[Connection] = None,
) -> List["InstallableExtension"]:
rows = await (conn or db).fetchall(
"SELECT * FROM installed_extensions",
(),
)
return [InstallableExtension.from_row(row) for row in rows]
async def get_inactive_extensions(*, conn: Optional[Connection] = None) -> List[str]:
inactive_extensions = await (conn or db).fetchall(
"""SELECT id FROM installed_extensions WHERE NOT active""",