diff options
Diffstat (limited to 'packages/taler-wallet-webextension/src/wxBackend.ts')
-rw-r--r-- | packages/taler-wallet-webextension/src/wxBackend.ts | 74 |
1 files changed, 12 insertions, 62 deletions
diff --git a/packages/taler-wallet-webextension/src/wxBackend.ts b/packages/taler-wallet-webextension/src/wxBackend.ts index 3655c5dbc..c50412053 100644 --- a/packages/taler-wallet-webextension/src/wxBackend.ts +++ b/packages/taler-wallet-webextension/src/wxBackend.ts @@ -34,6 +34,8 @@ import { WalletDiagnostics, makeErrorDetail, getErrorDetailFromException, + parseTalerUri, + TalerUriAction, } from "@gnu-taler/taler-util"; import { DbAccess, @@ -332,69 +334,17 @@ function parseTalerUriAndRedirect(tabId: number, maybeTalerUri: string): void { const talerUri = maybeTalerUri.startsWith("ext+") ? maybeTalerUri.substring(4) : maybeTalerUri; - const uriType = classifyTalerUri(talerUri); - switch (uriType) { - case TalerUriType.TalerWithdraw: - return platform.redirectTabToWalletPage( - tabId, - `/cta/withdraw?talerWithdrawUri=${encodeURIComponent(talerUri)}`, - ); - case TalerUriType.TalerPay: - return platform.redirectTabToWalletPage( - tabId, - `/cta/pay?talerPayUri=${encodeURIComponent(talerUri)}`, - ); - case TalerUriType.TalerTip: - return platform.redirectTabToWalletPage( - tabId, - `/cta/tip?talerTipUri=${encodeURIComponent(talerUri)}`, - ); - case TalerUriType.TalerRefund: - return platform.redirectTabToWalletPage( - tabId, - `/cta/refund?talerRefundUri=${encodeURIComponent(talerUri)}`, - ); - case TalerUriType.TalerPayPull: - return platform.redirectTabToWalletPage( - tabId, - `/cta/invoice/pay?talerPayPullUri=${encodeURIComponent(talerUri)}`, - ); - case TalerUriType.TalerPayPush: - return platform.redirectTabToWalletPage( - tabId, - `/cta/transfer/pickup?talerPayPushUri=${encodeURIComponent(talerUri)}`, - ); - case TalerUriType.TalerRecovery: - return platform.redirectTabToWalletPage( - tabId, - `/cta/transfer/recovery?talerBackupUri=${encodeURIComponent(talerUri)}`, - ); - case TalerUriType.TalerPayTemplate: - return platform.redirectTabToWalletPage( - tabId, - `/cta/pay/template?talerPayTemplateUri=${encodeURIComponent(talerUri)}`, - ); - return; - case TalerUriType.Unknown: - logger.warn( - `Response with HTTP 402 the Taler header but could not classify ${talerUri}`, - ); - return; - case TalerUriType.TalerDevExperiment: - // FIXME: Implement! - logger.warn("not implemented"); - return; - case TalerUriType.TalerTemplate: - logger.warn("not implemented"); - return; - default: { - const error: never = uriType; - logger.warn( - `Response with HTTP 402 the Taler header "${error}", but header value is not a taler:// URI.`, - ); - return; - } + const uri = parseTalerUri(talerUri); + if (!uri) { + logger.warn( + `Response with HTTP 402 the Taler header but could not classify ${talerUri}`, + ); + return; } + return platform.redirectTabToWalletPage( + tabId, + `/taler-uri/${encodeURIComponent(talerUri)}`, + ); } /** |