From 96af3bb8bf3a86b13da9d22866f35d5a8267ccc7 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Mon, 17 Jun 2024 16:04:58 -0500 Subject: [PATCH] Update stats in a transaction --- src/pipeline.ts | 16 ++++++++++++++-- src/storages/EventsDB.ts | 13 +------------ 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/pipeline.ts b/src/pipeline.ts index 9f99520b..de507ecd 100644 --- a/src/pipeline.ts +++ b/src/pipeline.ts @@ -116,8 +116,20 @@ async function storeEvent(event: DittoEvent, signal?: AbortSignal): Promise { + await updateStats({ event, store, kysely: trx }); + await store.event(event, { signal }); + }); + } catch (e) { + if (e.message === 'Cannot add a deleted event') { + throw new RelayError('blocked', 'event deleted by user'); + } else if (e.message === 'Cannot replace an event with an older event') { + return; + } else { + debug('ERROR', e.message); + } + } } /** Parse kind 0 metadata and track indexes in the database. */ diff --git a/src/storages/EventsDB.ts b/src/storages/EventsDB.ts index 8955d6d6..7ce9bde4 100644 --- a/src/storages/EventsDB.ts +++ b/src/storages/EventsDB.ts @@ -60,18 +60,7 @@ class EventsDB implements NStore { } await this.deleteEventsAdmin(event); - - try { - await this.store.event(event); - } catch (e) { - if (e.message === 'Cannot add a deleted event') { - throw new RelayError('blocked', 'event deleted by user'); - } else if (e.message === 'Cannot replace an event with an older event') { - return; - } else { - this.console.debug('ERROR', e.message); - } - } + await this.store.event(event); } /** Check if an event has been deleted by the admin. */