From c2769778f2d8826e990cf99796b3508003483a1c Mon Sep 17 00:00:00 2001 From: "P. Reis" Date: Wed, 26 Feb 2025 19:53:55 -0300 Subject: [PATCH 1/5] fix: call remove if it's available --- packages/ditto/controllers/api/admin.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/ditto/controllers/api/admin.ts b/packages/ditto/controllers/api/admin.ts index 411aa841..e393df46 100644 --- a/packages/ditto/controllers/api/admin.ts +++ b/packages/ditto/controllers/api/admin.ts @@ -160,11 +160,13 @@ const adminActionController: AppController = async (c) => { } if (data.type === 'revoke_name') { n.revoke_name = true; - relay.remove!([{ kinds: [30360], authors: [await conf.signer.getPublicKey()], '#p': [authorId] }]).catch( - (e: unknown) => { - logi({ level: 'error', ns: 'ditto.api.admin.account.action', type: data.type, error: errorJson(e) }); - }, - ); + if (relay.remove) { + relay.remove([{ kinds: [30360], authors: [await conf.signer.getPublicKey()], '#p': [authorId] }]).catch( + (e: unknown) => { + logi({ level: 'error', ns: 'ditto.api.admin.account.action', type: data.type, error: errorJson(e) }); + }, + ); + } } await updateUser(authorId, n, c); From 71946de478f21ac7a77b92c83f76a7ab75748f59 Mon Sep 17 00:00:00 2001 From: "P. Reis" Date: Wed, 26 Feb 2025 20:06:57 -0300 Subject: [PATCH 2/5] refactor: use ?. --- packages/ditto/controllers/api/admin.ts | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/ditto/controllers/api/admin.ts b/packages/ditto/controllers/api/admin.ts index e393df46..d8d03eb9 100644 --- a/packages/ditto/controllers/api/admin.ts +++ b/packages/ditto/controllers/api/admin.ts @@ -160,13 +160,11 @@ const adminActionController: AppController = async (c) => { } if (data.type === 'revoke_name') { n.revoke_name = true; - if (relay.remove) { - relay.remove([{ kinds: [30360], authors: [await conf.signer.getPublicKey()], '#p': [authorId] }]).catch( - (e: unknown) => { - logi({ level: 'error', ns: 'ditto.api.admin.account.action', type: data.type, error: errorJson(e) }); - }, - ); - } + relay.remove?.([{ kinds: [30360], authors: [await conf.signer.getPublicKey()], '#p': [authorId] }]).catch( + (e: unknown) => { + logi({ level: 'error', ns: 'ditto.api.admin.account.action', type: data.type, error: errorJson(e) }); + }, + ); } await updateUser(authorId, n, c); From ab5124e851e34370279e6ac7741e8f9eda129285 Mon Sep 17 00:00:00 2001 From: "P. Reis" Date: Wed, 26 Feb 2025 20:21:42 -0300 Subject: [PATCH 3/5] refactor: return 500 http code in case of error --- packages/ditto/controllers/api/admin.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/ditto/controllers/api/admin.ts b/packages/ditto/controllers/api/admin.ts index d8d03eb9..f3611035 100644 --- a/packages/ditto/controllers/api/admin.ts +++ b/packages/ditto/controllers/api/admin.ts @@ -160,11 +160,12 @@ const adminActionController: AppController = async (c) => { } if (data.type === 'revoke_name') { n.revoke_name = true; - relay.remove?.([{ kinds: [30360], authors: [await conf.signer.getPublicKey()], '#p': [authorId] }]).catch( - (e: unknown) => { - logi({ level: 'error', ns: 'ditto.api.admin.account.action', type: data.type, error: errorJson(e) }); - }, - ); + try { + await relay.remove!([{ kinds: [30360], authors: [await conf.signer.getPublicKey()], '#p': [authorId] }]); + } catch (e) { + logi({ level: 'error', ns: 'ditto.api.admin.account.action', type: data.type, error: errorJson(e) }); + return c.json({ error: 'Unexpected runtime error' }, 500); + } } await updateUser(authorId, n, c); From 17929bb6559c49c5efa68338771081becc18eac1 Mon Sep 17 00:00:00 2001 From: "P. Reis" Date: Thu, 27 Feb 2025 09:34:31 -0300 Subject: [PATCH 4/5] fix: call relay.remove --- packages/ditto/storages/DittoAPIStore.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/ditto/storages/DittoAPIStore.ts b/packages/ditto/storages/DittoAPIStore.ts index 6df5ebba..d4427f84 100644 --- a/packages/ditto/storages/DittoAPIStore.ts +++ b/packages/ditto/storages/DittoAPIStore.ts @@ -47,6 +47,14 @@ export class DittoAPIStore implements NRelay { })(); } + remove(filters: NostrFilter[], opts?: { signal?: AbortSignal }): Promise { + const { relay } = this.opts; + if (!relay.remove) { + return Promise.reject(new Error("Method not 'remove' not available.")); + } + return relay.remove(filters, opts); + } + async close(): Promise { const { pool, relay } = this.opts; From cb055b218c45885e1a17834e7d69dc5234e22b22 Mon Sep 17 00:00:00 2001 From: "P. Reis" Date: Thu, 27 Feb 2025 13:47:08 -0300 Subject: [PATCH 5/5] refactor: function async and just await it --- packages/ditto/storages/DittoAPIStore.ts | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/ditto/storages/DittoAPIStore.ts b/packages/ditto/storages/DittoAPIStore.ts index d4427f84..4b5c6fe2 100644 --- a/packages/ditto/storages/DittoAPIStore.ts +++ b/packages/ditto/storages/DittoAPIStore.ts @@ -47,12 +47,9 @@ export class DittoAPIStore implements NRelay { })(); } - remove(filters: NostrFilter[], opts?: { signal?: AbortSignal }): Promise { + async remove(filters: NostrFilter[], opts?: { signal?: AbortSignal }): Promise { const { relay } = this.opts; - if (!relay.remove) { - return Promise.reject(new Error("Method not 'remove' not available.")); - } - return relay.remove(filters, opts); + return await relay.remove!(filters, opts); } async close(): Promise {