commit d4eda1e1225dfd26fb829bbe6bc55a8d3e3bc419
parent 9e230bf31494cdc0a841a63c5c35967be7ed0470
Author: Florian Dold <florian@dold.me>
Date: Wed, 19 Feb 2025 12:39:49 +0100
remove some usages of deprecated API client
Diffstat:
4 files changed, 41 insertions(+), 33 deletions(-)
diff --git a/packages/taler-harness/src/harness/environments.ts b/packages/taler-harness/src/harness/environments.ts
@@ -39,15 +39,16 @@ import {
j2s,
LegitimizationRuleSet,
Logger,
- MerchantApiClient,
narrowOpSuccessOrThrow,
NotificationType,
PartialWalletRunConfig,
PreparePayResultType,
signAmlDecision,
+ succeedOrThrow,
TalerCorebankApiClient,
TalerCoreBankHttpClient,
TalerMerchantApi,
+ TalerMerchantInstanceHttpClient,
TalerProtocolTimestamp,
TransactionIdStr,
TransactionMajorState,
@@ -918,17 +919,19 @@ export async function makeTestPaymentV2(
const { walletClient, merchant, instance } = args;
- const merchantClient = new MerchantApiClient(
+ const merchantClient = new TalerMerchantInstanceHttpClient(
merchant.makeInstanceBaseUrl(instance),
);
- const orderResp = await merchantClient.createOrder({
- order: args.order,
- });
+ const orderResp = succeedOrThrow(
+ await merchantClient.createOrder(undefined, {
+ order: args.order,
+ }),
+ );
- let orderStatus = await merchantClient.queryPrivateOrderStatus({
- orderId: orderResp.order_id,
- });
+ let orderStatus = succeedOrThrow(
+ await merchantClient.getOrderDetails(undefined, orderResp.order_id),
+ );
t.assertTrue(orderStatus.order_status === "unpaid");
@@ -953,10 +956,9 @@ export async function makeTestPaymentV2(
// Check if payment was successful.
- orderStatus = await merchantClient.queryPrivateOrderStatus({
- orderId: orderResp.order_id,
- instance,
- });
+ orderStatus = succeedOrThrow(
+ await merchantClient.getOrderDetails(undefined, orderResp.order_id),
+ );
t.assertDeepEqual(orderStatus.order_status, "paid");
diff --git a/packages/taler-util/src/http-client/merchant.ts b/packages/taler-util/src/http-client/merchant.ts
@@ -1379,7 +1379,17 @@ export class TalerMerchantInstanceHttpClient {
token: AccessToken | undefined,
orderId: string,
params: TalerMerchantApi.GetOrderRequestParams = {},
- ) {
+ ): Promise<
+ | OperationOk<TalerMerchantApi.MerchantOrderStatusResponse>
+ | OperationFail<HttpStatusCode.NotFound>
+ | OperationFail<HttpStatusCode.Unauthorized>
+ | OperationFail<HttpStatusCode.BadGateway>
+ // FIXME: This can't be right!
+ | OperationAlternative<
+ HttpStatusCode.GatewayTimeout,
+ TalerMerchantApi.OutOfStockResponse
+ >
+ > {
const url = new URL(`private/orders/${orderId}`, this.baseUrl);
if (params.allowRefundedForRepurchase !== undefined) {
diff --git a/packages/taler-util/src/operation.ts b/packages/taler-util/src/operation.ts
@@ -37,7 +37,7 @@ import {
export type OperationResult<Body, ErrorEnum, K = never> =
| OperationOk<Body>
| OperationAlternative<ErrorEnum, any>
- | OperationFail<ErrorEnum>
+ | OperationFail<ErrorEnum>;
// | OperationFailWithBodyOrNever<ErrorEnum, K>;
export function isOperationOk<T, E>(
@@ -115,12 +115,11 @@ export function opEmptySuccess(resp: HttpResponse): OperationOk<void> {
return { type: "ok" as const, body: void 0 };
}
-export async function opKnownFailure<T>(
- case_: T): Promise<OperationFail<T>> {
+export async function opKnownFailure<T>(case_: T): Promise<OperationFail<T>> {
return { type: "fail", case: case_ };
}
-export async function opKnownFailureWithBody<T,B>(
+export async function opKnownFailureWithBody<T, B>(
case_: T,
body: B,
): Promise<OperationAlternative<T, B>> {
@@ -187,10 +186,7 @@ export function narrowOpSuccessOrThrow<Body>(
}
}
-export async function succeedOrThrow<R>(
- promise: Promise<OperationResult<R, unknown>>,
-): Promise<R> {
- const resp = await promise;
+export function succeedOrThrow<R>(resp: OperationResult<R, unknown>): R {
if (isOperationOk(resp)) {
return resp.body;
}
@@ -201,11 +197,11 @@ export async function succeedOrThrow<R>(
throw TalerError.fromException(resp);
}
-export async function alternativeOrThrow<Error,Body, Alt>(
+export async function alternativeOrThrow<Error, Body, Alt>(
s: Error,
- promise: Promise<OperationOk<Body>
- | OperationAlternative<Error, Alt>
- | OperationFail<Error>>,
+ promise: Promise<
+ OperationOk<Body> | OperationAlternative<Error, Alt> | OperationFail<Error>
+ >,
): Promise<Alt> {
const resp = await promise;
if (isOperationOk(resp)) {
@@ -252,10 +248,10 @@ export type ResultByMethod<
p extends keyof TT,
> = TT[p] extends (...args: any[]) => infer Ret
? Ret extends Promise<infer Result>
- ? Result extends OperationResult<any, any>
- ? Result
- : never
- : never //api always use Promises
+ ? Result extends OperationResult<any, any>
+ ? Result
+ : never
+ : never //api always use Promises
: never; //error cases just for functions
export type FailCasesByMethod<TT extends object, p extends keyof TT> = Exclude<
diff --git a/packages/taler-wallet-core/src/testing.ts b/packages/taler-wallet-core/src/testing.ts
@@ -166,7 +166,7 @@ export async function withdrawTestBalance(
}
/**
- * FIXME: User MerchantApiClient instead.
+ * FIXME: User TalerMerchantInstanceHttpClient instead.
*/
function getMerchantAuthHeader(m: MerchantBackendInfo): Record<string, string> {
if (m.authToken) {
@@ -178,7 +178,7 @@ function getMerchantAuthHeader(m: MerchantBackendInfo): Record<string, string> {
}
/**
- * FIXME: User MerchantApiClient instead.
+ * FIXME: User TalerMerchantInstanceHttpClient instead.
*/
async function refund(
http: HttpRequestLibrary,
@@ -210,7 +210,7 @@ async function refund(
}
/**
- * FIXME: User MerchantApiClient instead.
+ * FIXME: User TalerMerchantInstanceHttpClient instead.
*/
async function createOrder(
http: HttpRequestLibrary,
@@ -244,7 +244,7 @@ async function createOrder(
}
/**
- * FIXME: User MerchantApiClient instead.
+ * FIXME: User TalerMerchantInstanceHttpClient instead.
*/
async function checkPayment(
http: HttpRequestLibrary,