gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [taler-wallet-webex] 02/03: better types


From: gnunet
Subject: [GNUnet-SVN] [taler-wallet-webex] 02/03: better types
Date: Mon, 29 Jan 2018 16:41:30 +0100

This is an automated email from the git hooks/post-receive script.

dold pushed a commit to branch master
in repository wallet-webex.

commit c8c03e381e252dc3a73a2c35bb1cd2ee24eeaabb
Author: Florian Dold <address@hidden>
AuthorDate: Tue Jan 23 17:05:58 2018 +0100

    better types
---
 src/webex/messages.ts                | 26 ++++++++++++++------------
 src/webex/pages/confirm-contract.tsx | 20 ++++++++++++++------
 src/webex/wxApi.ts                   | 10 +++++++---
 src/webex/wxBackend.ts               |  2 +-
 4 files changed, 36 insertions(+), 22 deletions(-)

diff --git a/src/webex/messages.ts b/src/webex/messages.ts
index 2219cdf1..9a7dc8fd 100644
--- a/src/webex/messages.ts
+++ b/src/webex/messages.ts
@@ -26,6 +26,8 @@ import * as dbTypes from "../dbTypes";
 import * as talerTypes from "../talerTypes";
 import * as walletTypes from "../walletTypes";
 
+import { UpgradeResponse } from "./wxApi";
+
 /**
  * Message type information.
  */
@@ -73,7 +75,7 @@ export interface MessageMap {
   };
   "query-payment": {
     request: { };
-    response: void;
+    response: dbTypes.PurchaseRecord;
   };
   "exchange-info": {
     request: { baseUrl: string };
@@ -129,7 +131,7 @@ export interface MessageMap {
   };
   "withdraw-payback-reserve": {
     request: { reservePub: string };
-    response: void;
+    response: dbTypes.ReserveRecord[];
   };
   "get-precoins": {
     request: { exchangeBaseUrl: string };
@@ -145,11 +147,11 @@ export interface MessageMap {
   };
   "check-upgrade": {
     request: { };
-    response: void;
+    response: UpgradeResponse;
   };
   "get-sender-wire-infos": {
     request: { };
-    response: void;
+    response: walletTypes.SenderWireInfos;
   };
   "return-coins": {
     request: { };
@@ -164,20 +166,20 @@ export interface MessageMap {
     response: void;
   };
   "get-purchase": {
-    request: any;
-    response: void;
+    request: { contractTermsHash: string };
+    response: dbTypes.PurchaseRecord;
   };
   "get-full-refund-fees": {
     request: { refundPermissions: talerTypes.RefundPermission[] };
-    response: void;
+    response: AmountJson;
   };
   "accept-tip": {
     request: { tipToken: talerTypes.TipToken };
-    response: void;
+    response: walletTypes.TipStatus;
   };
   "get-tip-status": {
     request: { tipToken: talerTypes.TipToken };
-    response: void;
+    response: walletTypes.TipStatus;
   };
   "clear-notification": {
     request: { };
@@ -188,12 +190,12 @@ export interface MessageMap {
     response: void;
   };
   "download-proposal": {
-    request: any;
-    response: void;
+    request: { url: string };
+    response: number;
   };
   "submit-pay": {
     request: { contractTermsHash: string, sessionId: string | undefined };
-    response: void;
+    response: walletTypes.ConfirmPayResult;
   };
   "accept-refund": {
     request: { refundUrl: string }
diff --git a/src/webex/pages/confirm-contract.tsx 
b/src/webex/pages/confirm-contract.tsx
index 2ec13105..7fe6b960 100644
--- a/src/webex/pages/confirm-contract.tsx
+++ b/src/webex/pages/confirm-contract.tsx
@@ -49,7 +49,7 @@ interface DetailState {
 interface DetailProps {
   contractTerms: ContractTerms;
   collapsed: boolean;
-  exchanges: null|ExchangeRecord[];
+  exchanges: ExchangeRecord[] | undefined;
 }
 
 
@@ -110,11 +110,11 @@ interface ContractPromptProps {
 
 interface ContractPromptState {
   proposalId: number | undefined;
-  proposal: ProposalDownloadRecord | null;
+  proposal: ProposalDownloadRecord | undefined;
   error: string |  null;
   payDisabled: boolean;
   alreadyPaid: boolean;
-  exchanges: null|ExchangeRecord[];
+  exchanges: ExchangeRecord[] | undefined;
   /**
    * Don't request updates to proposal state while
    * this is set to true, to avoid UI flickering
@@ -123,6 +123,7 @@ interface ContractPromptState {
   holdCheck: boolean;
   payStatus?: CheckPayResult;
   replaying: boolean;
+  payInProgress: boolean;
 }
 
 class ContractPrompt extends React.Component<ContractPromptProps, 
ContractPromptState> {
@@ -131,10 +132,11 @@ class ContractPrompt extends 
React.Component<ContractPromptProps, ContractPrompt
     this.state = {
       alreadyPaid: false,
       error: null,
-      exchanges: null,
+      exchanges: undefined,
       holdCheck: false,
       payDisabled: true,
-      proposal: null,
+      payInProgress: false,
+      proposal: undefined,
       proposalId: props.proposalId,
       replaying: false,
     };
@@ -231,7 +233,13 @@ class ContractPrompt extends 
React.Component<ContractPromptProps, ContractPrompt
       return;
     }
     console.log("confirmPay with", proposalId, "and", this.props.sessionId);
-    const payResult = await wxApi.confirmPay(proposalId, this.props.sessionId);
+    let payResult;
+    try {
+      payResult = await wxApi.confirmPay(proposalId, this.props.sessionId);
+    } catch (e) {
+
+      return;
+    }
     console.log("payResult", payResult);
     document.location.href = payResult.nextUrl;
     this.setState({ holdCheck: true });
diff --git a/src/webex/wxApi.ts b/src/webex/wxApi.ts
index 8a7bf825..a1b0380b 100644
--- a/src/webex/wxApi.ts
+++ b/src/webex/wxApi.ts
@@ -29,6 +29,7 @@ import {
   DenominationRecord,
   ExchangeRecord,
   PreCoinRecord,
+  ProposalDownloadRecord,
   PurchaseRecord,
   ReserveRecord,
 } from "../dbTypes";
@@ -71,8 +72,11 @@ export interface UpgradeResponse {
 }
 
 
-async function callBackend<T extends MessageType>(type: T, detail: 
MessageMap[T]["request"]): Promise<any> {
-  return new Promise<any>((resolve, reject) => {
+async function callBackend<T extends MessageType>(
+  type: T,
+  detail: MessageMap[T]["request"],
+): Promise<MessageMap[T]["response"]> {
+  return new Promise<MessageMap[T]["response"]>((resolve, reject) => {
     chrome.runtime.sendMessage({ type, detail }, (resp) => {
       if (resp && resp.error) {
         reject(resp);
@@ -201,7 +205,7 @@ export function payback(coinPub: string): Promise<void> {
 /**
  * Get a proposal stored in the wallet by its proposal id.
  */
-export function getProposal(proposalId: number) {
+export function getProposal(proposalId: number): 
Promise<ProposalDownloadRecord | undefined> {
   return callBackend("get-proposal", { proposalId });
 }
 
diff --git a/src/webex/wxBackend.ts b/src/webex/wxBackend.ts
index 30842398..98b543d2 100644
--- a/src/webex/wxBackend.ts
+++ b/src/webex/wxBackend.ts
@@ -514,7 +514,7 @@ function handleHttpPayment(headerList: 
chrome.webRequest.HttpHeader[], url: stri
     console.log("processing refund");
     const uri = new 
URI(chrome.extension.getURL("/src/webex/pages/refund.html"));
     uri.query({ refundUrl: fields.refund_url });
-    return { redirectUrl: uri.href() };
+    return { redirectUrl: uri.href };
   }
 
   // We need to do some asynchronous operation, we can't directly redirect

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]