[fix] Ws api tests (#31)

This commit is contained in:
Vlad Stan 2024-11-11 15:25:25 +02:00 committed by GitHub
parent 73054fd5ce
commit 3dc066fbd4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 108 additions and 44 deletions

11
crud.py
View file

@ -86,13 +86,17 @@ async def delete_relay(user_id: str, relay_id: str):
async def create_event(event: NostrEvent):
await db.update("nostrrelay.events", event)
event_ = await get_event(event.relay_id, event.id)
if event_:
return None
await db.insert("nostrrelay.events", event)
# todo: optimize with bulk insert
for tag in event.tags:
name, value, *rest = tag
extra = json.dumps(rest) if rest else None
_tag = NostrEventTags(
relay_id=event.relay_id,
event_id=event.id,
name=name,
value=value,
@ -143,15 +147,14 @@ async def get_storage_for_public_key(relay_id: str, publisher_pubkey: str) -> in
Returns the storage space in bytes for all the events of a public key.
Deleted events are also counted
"""
result = await db.execute(
row: dict = await db.fetchone(
"""
SELECT SUM(size) as sum FROM nostrrelay.events
WHERE relay_id = :relay_id AND publisher = :publisher GROUP BY publisher
""",
{"relay_id": relay_id, "publisher": publisher_pubkey},
)
row = await result.mappings().first()
if not row:
return 0