diff options
Diffstat (limited to 'packages/taler-wallet-embedded/src')
| -rw-r--r-- | packages/taler-wallet-embedded/src/wallet-qjs.ts | 23 | 
1 files changed, 20 insertions, 3 deletions
| diff --git a/packages/taler-wallet-embedded/src/wallet-qjs.ts b/packages/taler-wallet-embedded/src/wallet-qjs.ts index 04efb458a..278a90c83 100644 --- a/packages/taler-wallet-embedded/src/wallet-qjs.ts +++ b/packages/taler-wallet-embedded/src/wallet-qjs.ts @@ -45,6 +45,8 @@ import {    reduceAction,    getBackupStartState,    getRecoveryStartState, +  discoverPolicies, +  mergeDiscoveryAggregate,    ReducerState,  } from "@gnu-taler/anastasis-core";  import { @@ -195,18 +197,33 @@ async function handleAnastasisRequest(      };    }; +  let req = args ?? {}; +    switch (operation) {      case "anastasisReduce":        // TODO: do some input validation here -      let req = args ?? {}; -      let res = await reduceAction(req.state, req.action, req.args ?? {}); +      let reduceRes = await reduceAction(req.state, req.action, req.args ?? {});        // For now, this will return "success" even if the wrapped Anastasis        // response is a ReducerStateError. -      return wrapSuccessResponse(res); +      return wrapSuccessResponse(reduceRes);      case "anastasisStartBackup":        return wrapSuccessResponse(await getBackupStartState());      case "anastasisStartRecovery":        return wrapSuccessResponse(await getRecoveryStartState()); +    case "anastasisDiscoverPolicies": +      let discoverRes = await discoverPolicies(req.state, req.cursor); +      let aggregatedPolicies = mergeDiscoveryAggregate( +        discoverRes.policies ?? [], +        req.state.discoveryState?.aggregatedPolicies ?? [], +      ); +      return wrapSuccessResponse({ +        ...req.state, +        discoveryState: { +          state: "finished", +          aggregatedPolicies, +          cursor: discoverRes.cursor, +        }, +      });    }  } | 
