From 608400d010262d3e2dc59cd03508a608560b521b Mon Sep 17 00:00:00 2001 From: Davinci Date: Mon, 13 May 2024 13:11:52 +0200 Subject: [PATCH] fix: failed DM error handling --- src/controllers/NostrController.ts | 18 ++++++++++++++++-- src/utils/misc.ts | 11 ++++++++--- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/controllers/NostrController.ts b/src/controllers/NostrController.ts index a2b0f1e..ac3fbf9 100644 --- a/src/controllers/NostrController.ts +++ b/src/controllers/NostrController.ts @@ -214,8 +214,22 @@ export class NostrController extends EventEmitter { } }) - if (publishedRelays.length === 0) - throw new Error(`Couldn't publish to any relay`) + if (publishedRelays.length === 0) { + const failedPublishes: any[] = [] + + results.forEach((res, index) => { + if (res.status === 'rejected') { + failedPublishes.push( + { + relay: relays[index], + error: res.reason.message + } + ) + } + }) + + throw failedPublishes + } return publishedRelays } diff --git a/src/utils/misc.ts b/src/utils/misc.ts index 3a0c0cd..841b9fa 100644 --- a/src/utils/misc.ts +++ b/src/utils/misc.ts @@ -157,9 +157,14 @@ export const sendDM = async ( .then((relays) => { toast.success(`Encrypted DM sent on: ${relays.join('\n')}`) }) - .catch((err) => { - console.log('err :>> ', err) - toast.error(err.message || 'An error occurred while publishing DM') + .catch((errResults) => { + console.log('err :>> ', errResults) + toast.error('An error occurred while publishing DM') + + errResults.forEach((errResult: any) => { + toast.error(`${errResult.relay} -- ${errResult.error}`) + }) + return null }) }