revert the Lost payment result
This commit is contained in:
parent
c121eb875e
commit
dcddc4c53a
@ -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;
|
||||
|
@ -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 {
|
||||
|
@ -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;
|
||||
|
@ -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,
|
||||
};
|
||||
|
@ -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(
|
||||
|
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user