fix re-purchase detection
This commit is contained in:
parent
65bccbd139
commit
c8c84911ce
@ -27,6 +27,7 @@ import { Logger } from "../util/logging";
|
||||
import * as Amounts from "../util/amounts";
|
||||
import { decodeCrock } from "../crypto/talerCrypto";
|
||||
import { OperationFailedAndReportedError } from "../wallet-impl/errors";
|
||||
import { Bank } from "./bank";
|
||||
|
||||
const logger = new Logger("taler-wallet-cli.ts");
|
||||
|
||||
@ -434,6 +435,23 @@ testCli
|
||||
console.log(tipUri);
|
||||
});
|
||||
|
||||
testCli
|
||||
.subcommand("genWithdrawUri", "gen-withdraw-uri", {
|
||||
help: "Generate a taler://withdraw URI.",
|
||||
})
|
||||
.requiredOption("amount", ["-a", "--amount"], clk.STRING, {
|
||||
default: "TESTKUDOS:20",
|
||||
})
|
||||
.requiredOption("bank", ["-b", "--bank"], clk.STRING, {
|
||||
default: "https://bank.test.taler.net/",
|
||||
})
|
||||
.action(async (args) => {
|
||||
const b = new Bank(args.genWithdrawUri.bank);
|
||||
const user = await b.registerRandomUser();
|
||||
const url = await b.generateWithdrawUri(user, args.genWithdrawUri.amount);
|
||||
console.log(url);
|
||||
});
|
||||
|
||||
testCli
|
||||
.subcommand("genRefundUri", "gen-refund-uri", {
|
||||
help: "Generate a taler://refund URI.",
|
||||
|
@ -593,6 +593,7 @@ async function processDownloadProposalImpl(
|
||||
fulfillmentUrl,
|
||||
);
|
||||
if (differentPurchase) {
|
||||
console.log("repurchase detected");
|
||||
p.proposalStatus = ProposalStatus.REPURCHASE;
|
||||
p.repurchaseProposalId = differentPurchase.proposalId;
|
||||
await tx.put(Stores.proposals, p);
|
||||
@ -756,7 +757,7 @@ export async function preparePay(
|
||||
};
|
||||
}
|
||||
|
||||
const proposalId = await startDownloadProposal(
|
||||
let proposalId = await startDownloadProposal(
|
||||
ws,
|
||||
uriResult.downloadUrl,
|
||||
uriResult.sessionId,
|
||||
@ -771,6 +772,7 @@ export async function preparePay(
|
||||
if (!existingProposalId) {
|
||||
throw Error("invalid proposal state");
|
||||
}
|
||||
console.log("using existing purchase for same product");
|
||||
proposal = await oneShotGet(ws.db, Stores.proposals, existingProposalId);
|
||||
if (!proposal) {
|
||||
throw Error("existing proposal is in wrong state");
|
||||
@ -787,7 +789,7 @@ export async function preparePay(
|
||||
throw Error("BUG: proposal is in invalid state");
|
||||
}
|
||||
|
||||
console.log("proposal", proposal);
|
||||
proposalId = proposal.proposalId;
|
||||
|
||||
// First check if we already payed for it.
|
||||
const purchase = await oneShotGet(ws.db, Stores.purchases, proposalId);
|
||||
|
Loading…
Reference in New Issue
Block a user