* chore: increase log level * feat: secure relays endpoint * feat: add config for the extension * chore: update `min_lnbits_version` * chore: improve logging * fix: decrypt logic * chore: improve logs
63 lines
1.6 KiB
Python
63 lines
1.6 KiB
Python
from typing import List, Optional
|
|
|
|
import json
|
|
|
|
from . import db
|
|
from .models import Config, Relay
|
|
|
|
|
|
async def get_relays() -> List[Relay]:
|
|
rows = await db.fetchall("SELECT * FROM nostrclient.relays")
|
|
return [Relay.from_row(r) for r in rows]
|
|
|
|
|
|
async def add_relay(relay: Relay) -> None:
|
|
await db.execute(
|
|
"""
|
|
INSERT INTO nostrclient.relays (
|
|
id,
|
|
url,
|
|
active
|
|
)
|
|
VALUES (?, ?, ?)
|
|
""",
|
|
(relay.id, relay.url, relay.active),
|
|
)
|
|
|
|
|
|
async def delete_relay(relay: Relay) -> None:
|
|
await db.execute("DELETE FROM nostrclient.relays WHERE url = ?", (relay.url,))
|
|
|
|
|
|
######################CONFIG#######################
|
|
async def create_config() -> Config:
|
|
config = Config()
|
|
await db.execute(
|
|
"""
|
|
INSERT INTO nostrclient.config (json_data)
|
|
VALUES (?)
|
|
""",
|
|
(json.dumps(config.dict())),
|
|
)
|
|
row = await db.fetchone(
|
|
"SELECT json_data FROM nostrclient.config", ()
|
|
)
|
|
return json.loads(row[0], object_hook=lambda d: Config(**d))
|
|
|
|
|
|
async def update_config(config: Config) -> Optional[Config]:
|
|
await db.execute(
|
|
"""UPDATE nostrclient.config SET json_data = ?""",
|
|
(json.dumps(config.dict())),
|
|
)
|
|
row = await db.fetchone(
|
|
"SELECT json_data FROM nostrclient.config", ()
|
|
)
|
|
return json.loads(row[0], object_hook=lambda d: Config(**d))
|
|
|
|
|
|
async def get_config() -> Optional[Config]:
|
|
row = await db.fetchone(
|
|
"SELECT json_data FROM nostrclient.config", ()
|
|
)
|
|
return json.loads(row[0], object_hook=lambda d: Config(**d)) if row else None
|