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. */