From ef15b846a9afcd8bd237ac52af1b159281ef1f09 Mon Sep 17 00:00:00 2001 From: alina sireneva Date: Thu, 30 May 2024 18:21:40 +0300 Subject: [PATCH] fix(core)!: map tl errors to `MtPeerNotFoundError` in resolvePeer --- .../highlevel/methods/users/resolve-peer.ts | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/packages/core/src/highlevel/methods/users/resolve-peer.ts b/packages/core/src/highlevel/methods/users/resolve-peer.ts index 058b4043..f7da7cea 100644 --- a/packages/core/src/highlevel/methods/users/resolve-peer.ts +++ b/packages/core/src/highlevel/methods/users/resolve-peer.ts @@ -64,10 +64,16 @@ export async function resolvePeer( const fromStorage = await client.storage.peers.getByPhone(peerId) if (fromStorage) return fromStorage - res = await client.call({ - _: 'contacts.resolvePhone', - phone: peerId, - }) + try { + res = await client.call({ + _: 'contacts.resolvePhone', + phone: peerId, + }) + } catch (e) { + if (tl.RpcError.is(e, 'PHONE_NOT_OCCUPIED')) { + throw new MtPeerNotFoundError(`Peer with phone number ${peerId} was not found`) + } else throw e + } } else { // username if (!force) { @@ -75,10 +81,16 @@ export async function resolvePeer( if (fromStorage) return fromStorage } - res = await client.call({ - _: 'contacts.resolveUsername', - username: peerId, - }) + try { + res = await client.call({ + _: 'contacts.resolveUsername', + username: peerId, + }) + } catch (e) { + if (tl.RpcError.is(e, 'USERNAME_NOT_OCCUPIED')) { + throw new MtPeerNotFoundError(`Peer with username ${peerId} was not found`) + } else throw e + } } if (res.peer._ === 'peerUser') {