From dcddc4c53a59b087c5e48b6b20ed740514257bc8 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Fri, 25 Nov 2022 12:18:52 -0300 Subject: revert the Lost payment result --- packages/taler-util/src/wallet-types.ts | 18 +----------------- .../src/operations/backup/index.ts | 21 ++++++++------------- .../src/operations/pay-merchant.ts | 5 +---- .../src/cta/Payment/index.ts | 14 ++------------ .../src/cta/Payment/state.ts | 7 ------- .../src/cta/Payment/views.tsx | 18 ------------------ 6 files changed, 12 insertions(+), 71 deletions(-) diff --git a/packages/taler-util/src/wallet-types.ts b/packages/taler-util/src/wallet-types.ts index 0c837f2d0..61f2f3b73 100644 --- a/packages/taler-util/src/wallet-types.ts +++ b/packages/taler-util/src/wallet-types.ts @@ -385,7 +385,6 @@ export enum PreparePayResultType { PaymentPossible = "payment-possible", InsufficientBalance = "insufficient-balance", AlreadyConfirmed = "already-confirmed", - Lost = "lost", } export const codecForPreparePayResultPaymentPossible = @@ -434,12 +433,6 @@ export const codecForPreparePayResultAlreadyConfirmed = .property("proposalId", codecForString()) .build("PreparePayResultAlreadyConfirmed"); -export const codecForPreparePayResultPaymentLost = - (): Codec => - buildCodecForObject() - .property("status", codecForConstString(PreparePayResultType.Lost)) - .build("PreparePayResultLost"); - export const codecForPreparePayResult = (): Codec => buildCodecForUnion() .discriminateOn("status") @@ -455,10 +448,6 @@ export const codecForPreparePayResult = (): Codec => PreparePayResultType.PaymentPossible, codecForPreparePayResultPaymentPossible(), ) - .alternative( - PreparePayResultType.Lost, - codecForPreparePayResultPaymentLost(), - ) .build("PreparePayResult"); /** @@ -467,8 +456,7 @@ export const codecForPreparePayResult = (): Codec => export type PreparePayResult = | PreparePayResultInsufficientBalance | PreparePayResultAlreadyConfirmed - | PreparePayResultPaymentPossible - | PreparePayResultPaymentLost; + | PreparePayResultPaymentPossible; /** * Payment is possible. @@ -504,10 +492,6 @@ export interface PreparePayResultAlreadyConfirmed { talerUri?: string; } -export interface PreparePayResultPaymentLost { - status: PreparePayResultType.Lost; -} - export interface BankWithdrawDetails { selectionDone: boolean; transferDone: boolean; diff --git a/packages/taler-wallet-core/src/operations/backup/index.ts b/packages/taler-wallet-core/src/operations/backup/index.ts index eef838b0c..a44e8f55a 100644 --- a/packages/taler-wallet-core/src/operations/backup/index.ts +++ b/packages/taler-wallet-core/src/operations/backup/index.ts @@ -368,10 +368,7 @@ async function runBackupCycleForProvider( } } - if ( - res === undefined || - res.status === PreparePayResultType.AlreadyConfirmed - ) { + if (res === undefined) { //claimed await ws.db @@ -400,10 +397,6 @@ async function runBackupCycleForProvider( } const result = res; - if (result.status === PreparePayResultType.Lost) { - throw Error("invalid state, could not get proposal for backup"); - } - await ws.db .mktx((x) => [x.backupProviders, x.operationRetries]) .runReadWrite(async (tx) => { @@ -890,7 +883,13 @@ async function getProviderPaymentInfo( const status = await checkPaymentByProposalId( ws, provider.currentPaymentProposalId, - ); + ).catch(() => undefined); + + if (!status) { + return { + type: ProviderPaymentType.Unpaid, + }; + } switch (status.status) { case PreparePayResultType.InsufficientBalance: @@ -903,10 +902,6 @@ async function getProviderPaymentInfo( type: ProviderPaymentType.Pending, talerUri: status.talerUri, }; - case PreparePayResultType.Lost: - return { - type: ProviderPaymentType.Unpaid, - }; case PreparePayResultType.AlreadyConfirmed: if (status.paid) { return { diff --git a/packages/taler-wallet-core/src/operations/pay-merchant.ts b/packages/taler-wallet-core/src/operations/pay-merchant.ts index d3d0a12bd..ed7f17a18 100644 --- a/packages/taler-wallet-core/src/operations/pay-merchant.ts +++ b/packages/taler-wallet-core/src/operations/pay-merchant.ts @@ -1291,10 +1291,7 @@ export async function checkPaymentByProposalId( return tx.purchases.get(proposalId); }); if (!proposal) { - // throw Error(`could not get proposal ${proposalId}`); - return { - status: PreparePayResultType.Lost, - }; + throw Error(`could not get proposal ${proposalId}`); } if (proposal.purchaseStatus === PurchaseStatus.RepurchaseDetected) { const existingProposalId = proposal.repurchaseProposalId; diff --git a/packages/taler-wallet-webextension/src/cta/Payment/index.ts b/packages/taler-wallet-webextension/src/cta/Payment/index.ts index 80822b381..9bca8f74f 100644 --- a/packages/taler-wallet-webextension/src/cta/Payment/index.ts +++ b/packages/taler-wallet-webextension/src/cta/Payment/index.ts @@ -27,7 +27,7 @@ import { ButtonHandler } from "../../mui/handlers.js"; import { compose, StateViewMap } from "../../utils/index.js"; import { wxApi } from "../../wxApi.js"; import { useComponentState } from "./state.js"; -import { BaseView, LoadingUriView, LostView } from "./views.js"; +import { BaseView, LoadingUriView } from "./views.js"; export interface Props { talerPayUri?: string; @@ -41,7 +41,6 @@ export type State = | State.LoadingUriError | State.Ready | State.NoEnoughBalance - | State.Lost | State.NoBalanceForCurrency | State.Confirmed; @@ -64,10 +63,7 @@ export namespace State { } export interface NoBalanceForCurrency extends BaseInfo { status: "no-balance-for-currency"; - payStatus: - | PreparePayResultInsufficientBalance - | PreparePayResultPaymentPossible - | PreparePayResultAlreadyConfirmed; + payStatus: PreparePayResult; balance: undefined; } export interface NoEnoughBalance extends BaseInfo { @@ -82,11 +78,6 @@ export namespace State { balance: AmountJson; } - export interface Lost { - status: "lost"; - error: undefined; - } - export interface Confirmed extends BaseInfo { status: "confirmed"; payStatus: PreparePayResultAlreadyConfirmed; @@ -99,7 +90,6 @@ const viewMapping: StateViewMap = { "loading-uri": LoadingUriView, "no-balance-for-currency": BaseView, "no-enough-balance": BaseView, - lost: LostView, confirmed: BaseView, ready: BaseView, }; diff --git a/packages/taler-wallet-webextension/src/cta/Payment/state.ts b/packages/taler-wallet-webextension/src/cta/Payment/state.ts index b90b1e495..970af5b81 100644 --- a/packages/taler-wallet-webextension/src/cta/Payment/state.ts +++ b/packages/taler-wallet-webextension/src/cta/Payment/state.ts @@ -83,13 +83,6 @@ export function useComponentState( } const { payStatus } = hook.response; - if (payStatus.status === PreparePayResultType.Lost) { - return { - status: "lost", - error: undefined, - }; - } - const amount = Amounts.parseOrThrow(payStatus.amountRaw); const foundBalance = hook.response.balance.balances.find( diff --git a/packages/taler-wallet-webextension/src/cta/Payment/views.tsx b/packages/taler-wallet-webextension/src/cta/Payment/views.tsx index 6b502a87f..0f6cb5c28 100644 --- a/packages/taler-wallet-webextension/src/cta/Payment/views.tsx +++ b/packages/taler-wallet-webextension/src/cta/Payment/views.tsx @@ -65,21 +65,6 @@ type SupportedStates = | State.NoBalanceForCurrency | State.NoEnoughBalance; -export function LostView(state: State.Lost): VNode { - const { i18n } = useTranslationContext(); - - return ( - Could not load pay status} - description={ - - The proposal was lost, another should be downloaded - - } - /> - ); -} - export function BaseView(state: SupportedStates): VNode { const { i18n } = useTranslationContext(); @@ -417,9 +402,6 @@ export function ButtonsSection({ ); } - if (payStatus.status === PreparePayResultType.Lost) { - return ; - } assertUnreachable(payStatus); } -- cgit v1.2.3