revert the Lost payment result

This commit is contained in:
Sebastian 2022-11-25 12:18:52 -03:00
parent c121eb875e
commit dcddc4c53a
No known key found for this signature in database
GPG Key ID: BE4FF68352439FC1
6 changed files with 12 additions and 71 deletions

View File

@ -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<PreparePayResultPaymentLost> =>
buildCodecForObject<PreparePayResultPaymentLost>()
.property("status", codecForConstString(PreparePayResultType.Lost))
.build("PreparePayResultLost");
export const codecForPreparePayResult = (): Codec<PreparePayResult> =>
buildCodecForUnion<PreparePayResult>()
.discriminateOn("status")
@ -455,10 +448,6 @@ export const codecForPreparePayResult = (): Codec<PreparePayResult> =>
PreparePayResultType.PaymentPossible,
codecForPreparePayResultPaymentPossible(),
)
.alternative(
PreparePayResultType.Lost,
codecForPreparePayResultPaymentLost(),
)
.build("PreparePayResult");
/**
@ -467,8 +456,7 @@ export const codecForPreparePayResult = (): Codec<PreparePayResult> =>
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;

View File

@ -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 {

View File

@ -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;

View File

@ -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<State> = {
"loading-uri": LoadingUriView,
"no-balance-for-currency": BaseView,
"no-enough-balance": BaseView,
lost: LostView,
confirmed: BaseView,
ready: BaseView,
};

View File

@ -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(

View File

@ -65,21 +65,6 @@ type SupportedStates =
| State.NoBalanceForCurrency
| State.NoEnoughBalance;
export function LostView(state: State.Lost): VNode {
const { i18n } = useTranslationContext();
return (
<ErrorMessage
title={<i18n.Translate>Could not load pay status</i18n.Translate>}
description={
<i18n.Translate>
The proposal was lost, another should be downloaded
</i18n.Translate>
}
/>
);
}
export function BaseView(state: SupportedStates): VNode {
const { i18n } = useTranslationContext();
@ -417,9 +402,6 @@ export function ButtonsSection({
</Fragment>
);
}
if (payStatus.status === PreparePayResultType.Lost) {
return <Fragment />;
}
assertUnreachable(payStatus);
}