From bf06b6634a6723ca8f42c425809cba64a986f753 Mon Sep 17 00:00:00 2001 From: NicolasCantu Date: Tue, 6 May 2025 16:47:56 +0200 Subject: [PATCH] Update handleRequestLink --- src/router.ts | 50 +++++++++++++++++++++----------------------------- 1 file changed, 21 insertions(+), 29 deletions(-) diff --git a/src/router.ts b/src/router.ts index f3445c4..463d4e2 100755 --- a/src/router.ts +++ b/src/router.ts @@ -199,39 +199,31 @@ export async function registerAllListeners() { throw new Error('User refused to link'); } - const tokenService = await TokenService.getInstance(); - const sessionToken = tokenService.generateSessionToken(event.origin); - - if (services.isPaired()) { - // Device already paired - just renew token - window.parent.postMessage( - { - type: MessageType.RENEW_TOKEN, - sessionToken - }, - event.origin - ); - } else { + if (!services.isPaired()) { // New device - do pairing process + console.log('🚀 The device is not paired'); await prepareAndSendPairingTx(); - await services.confirmPairing(); - const neuteredDevice = services.dumpNeuteredDevice(); - - if (!neuteredDevice) { - throw new Error('Failed to get neutered device'); - } - - window.parent.postMessage( - { - type: MessageType.LINK_ACCEPTED, - payload: JSON.stringify(neuteredDevice), - sessionToken - }, - event.origin - ); + await services.confirmPairing(); } } catch (error) { - const errorMsg = `Failed to link service: ${error}`; + const errorMsg = `Failed to pair device: ${error}`; + errorResponse(errorMsg, event.origin); + } + + try { + const tokenService = await TokenService.getInstance(); + const tokens = await tokenService.generateSessionToken(event.origin); + const acceptedMsg: LinkAcceptedMessage = { + type: MessageType.LINK_ACCEPTED, + accessToken: tokens.accessToken, + refreshToken: tokens.refreshToken + }; + window.parent.postMessage( + acceptedMsg, + event.origin + ); + } catch (error) { + const errorMsg = `Failed to generate tokens: ${error}`; errorResponse(errorMsg, event.origin); } }