diff --git a/src/controllers/api/ditto.ts b/src/controllers/api/ditto.ts index f7138d9f..e756ffa8 100644 --- a/src/controllers/api/ditto.ts +++ b/src/controllers/api/ditto.ts @@ -5,7 +5,7 @@ import { AppController } from '@/app.ts'; import { Conf } from '@/config.ts'; import { addTag } from '@/utils/tags.ts'; import { getAuthor } from '@/queries.ts'; -import { createEvent, paginated, parseBody, updateEvent } from '@/utils/api.ts'; +import { createEvent, paginated, parseBody, updateAdminEvent } from '@/utils/api.ts'; import { getInstanceMetadata } from '@/utils/instance.ts'; import { deleteTag } from '@/utils/tags.ts'; import { DittoEvent } from '@/interfaces/DittoEvent.ts'; @@ -311,7 +311,7 @@ export const updateInstanceController: AppController = async (c) => { return c.json(result.error, 422); } - await updateEvent( + await updateAdminEvent( { kinds: [0], authors: [pubkey], limit: 1 }, async (_) => { const meta = await getInstanceMetadata(await Storages.db(), c.req.raw.signal); diff --git a/src/utils/api.ts b/src/utils/api.ts index e7766979..7d1e2122 100644 --- a/src/utils/api.ts +++ b/src/utils/api.ts @@ -111,12 +111,12 @@ function updateListAdminEvent( /** Fetch existing event, update it, then publish the new admin event. */ async function updateAdminEvent( filter: UpdateEventFilter, - fn: (prev: NostrEvent | undefined) => E, + fn: (prev: NostrEvent | undefined) => E | Promise, c: AppContext, ): Promise { const store = await Storages.db(); const [prev] = await store.query([filter], { limit: 1, signal: c.req.raw.signal }); - return createAdminEvent(fn(prev), c); + return createAdminEvent(await fn(prev), c); } function updateUser(pubkey: string, n: Record, c: AppContext): Promise {