taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

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:
Mpackages/taler-harness/src/harness/environments.ts | 26++++++++++++++------------
Mpackages/taler-util/src/http-client/merchant.ts | 12+++++++++++-
Mpackages/taler-util/src/operation.ts | 28++++++++++++----------------
Mpackages/taler-wallet-core/src/testing.ts | 8++++----
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,