aboutsummaryrefslogtreecommitdiff
path: root/packages/web-util/src/context/merchant-api.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/web-util/src/context/merchant-api.ts')
-rw-r--r--packages/web-util/src/context/merchant-api.ts18
1 files changed, 12 insertions, 6 deletions
diff --git a/packages/web-util/src/context/merchant-api.ts b/packages/web-util/src/context/merchant-api.ts
index 03c95d48e..8d929ae12 100644
--- a/packages/web-util/src/context/merchant-api.ts
+++ b/packages/web-util/src/context/merchant-api.ts
@@ -49,7 +49,7 @@ import {
export type MerchantContextType = {
url: URL;
- config: TalerMerchantApi.VersionResponse;
+ config: TalerMerchantApi.TalerMerchantConfigResponse;
lib: MerchantLib;
hints: VersionHint[];
onActivity: Subscriber<ObservabilityEvent>;
@@ -95,11 +95,13 @@ export const MerchantApiProvider = ({
evictors?: Evictors;
children: ComponentChildren;
frameOnError: FunctionComponent<{
- state: ConfigResultFail<TalerMerchantApi.VersionResponse> | undefined;
+ state:
+ | ConfigResultFail<TalerMerchantApi.TalerMerchantConfigResponse>
+ | undefined;
}>;
}): VNode => {
const [checked, setChecked] =
- useState<ConfigResult<TalerMerchantApi.VersionResponse>>();
+ useState<ConfigResult<TalerMerchantApi.TalerMerchantConfigResponse>>();
const [merchantEndpoint, changeMerchantEndpoint] = useState(baseUrl);
@@ -162,7 +164,7 @@ export const MerchantApiProvider = ({
function buildMerchantApiClient(
url: URL,
evictors: Evictors,
-): APIClient<MerchantLib, TalerMerchantApi.VersionResponse> {
+): APIClient<MerchantLib, TalerMerchantApi.TalerMerchantConfigResponse> {
const httpFetch = new BrowserFetchHttpLib({
enableThrottling: true,
requireTls: false,
@@ -193,10 +195,14 @@ function buildMerchantApiClient(
return api.lib;
}
- async function getRemoteConfig(): Promise<TalerMerchantApi.VersionResponse> {
+ async function getRemoteConfig(): Promise<TalerMerchantApi.TalerMerchantConfigResponse> {
const resp = await instance.getConfig();
if (resp.type === "fail") {
- throw TalerError.fromUncheckedDetail(resp.detail);
+ if (resp.detail) {
+ throw TalerError.fromUncheckedDetail(resp.detail);
+ } else {
+ throw TalerError.fromException(new Error("failed to get merchant remote config"))
+ }
}
return resp.body;
}