diff options
Diffstat (limited to 'packages/taler-util/src/http-client/merchant.ts')
-rw-r--r-- | packages/taler-util/src/http-client/merchant.ts | 77 |
1 files changed, 74 insertions, 3 deletions
diff --git a/packages/taler-util/src/http-client/merchant.ts b/packages/taler-util/src/http-client/merchant.ts index b054a04eb..e9fda5075 100644 --- a/packages/taler-util/src/http-client/merchant.ts +++ b/packages/taler-util/src/http-client/merchant.ts @@ -20,7 +20,6 @@ import { PaginationParams, TalerMerchantApi, codecForAbortResponse, - codecForAccountAddDetails, codecForAccountAddResponse, codecForAccountKycRedirects, codecForAccountsSummaryResponse, @@ -28,22 +27,28 @@ import { codecForClaimResponse, codecForInventorySummaryResponse, codecForMerchantConfig, + codecForMerchantOrderPrivateStatusResponse, + codecForOrderHistory, + codecForOutOfStockResponse, codecForPaidRefundStatusResponse, codecForPaymentResponse, + codecForPostOrderResponse, + codecForProductDetail, codecForQueryInstancesResponse, codecForStatusGoto, codecForStatusPaid, codecForStatusStatusUnpaid, codecForWalletRefundResponse, opEmptySuccess, - opKnownHttpFailure, + opKnownAlternativeFailure, + opKnownHttpFailure } from "@gnu-taler/taler-util"; import { HttpRequestLibrary, createPlatformHttpLib, } from "@gnu-taler/taler-util/http"; import { opSuccessFromHttp, opUnknownFailure } from "../operation.js"; -import { CacheEvictor, addMerchantPaginationParams, addPaginationParams, nullEvictor } from "./utils.js"; +import { CacheEvictor, addMerchantPaginationParams, nullEvictor } from "./utils.js"; export enum TalerMerchantCacheEviction { CREATE_ORDER, @@ -640,6 +645,15 @@ export class TalerMerchantInstanceHttpClient { const resp = await this.httpLib.fetch(url.href, { method: "GET", }); + + switch (resp.status) { + case HttpStatusCode.Ok: + return opSuccessFromHttp(resp, codecForProductDetail()); + case HttpStatusCode.NotFound: + return opKnownHttpFailure(resp.status, resp); + default: + return opUnknownFailure(resp, await resp.text()); + } } /** @@ -651,6 +665,17 @@ export class TalerMerchantInstanceHttpClient { const resp = await this.httpLib.fetch(url.href, { method: "POST", }); + + switch (resp.status) { + case HttpStatusCode.NoContent: + return opEmptySuccess(resp) + case HttpStatusCode.NotFound: + return opKnownHttpFailure(resp.status, resp); + case HttpStatusCode.Gone: + return opKnownHttpFailure(resp.status, resp); + default: + return opUnknownFailure(resp, await resp.text()); + } } /** @@ -662,6 +687,17 @@ export class TalerMerchantInstanceHttpClient { const resp = await this.httpLib.fetch(url.href, { method: "DELETE", }); + + switch (resp.status) { + case HttpStatusCode.NoContent: + return opEmptySuccess(resp) + case HttpStatusCode.NotFound: + return opKnownHttpFailure(resp.status, resp); + case HttpStatusCode.Conflict: + return opKnownHttpFailure(resp.status, resp); + default: + return opUnknownFailure(resp, await resp.text()); + } } // @@ -678,6 +714,19 @@ export class TalerMerchantInstanceHttpClient { method: "POST", body, }); + + switch (resp.status) { + case HttpStatusCode.Ok: + return opSuccessFromHttp(resp, codecForPostOrderResponse()) + case HttpStatusCode.NotFound: + return opKnownHttpFailure(resp.status, resp); + case HttpStatusCode.Conflict: + return opKnownHttpFailure(resp.status, resp); + case HttpStatusCode.Gone: + return opKnownAlternativeFailure(resp, resp.status, codecForOutOfStockResponse()); + default: + return opUnknownFailure(resp, await resp.text()); + } } /** @@ -717,6 +766,13 @@ export class TalerMerchantInstanceHttpClient { const resp = await this.httpLib.fetch(url.href, { method: "GET", }); + + switch (resp.status) { + case HttpStatusCode.Ok: + return opSuccessFromHttp(resp, codecForOrderHistory()) + default: + return opUnknownFailure(resp, await resp.text()); + } } /** @@ -741,6 +797,20 @@ export class TalerMerchantInstanceHttpClient { const resp = await this.httpLib.fetch(url.href, { method: "GET", }); + + switch (resp.status) { + case HttpStatusCode.Ok: + return opSuccessFromHttp(resp, codecForMerchantOrderPrivateStatusResponse()) + case HttpStatusCode.NotFound: + return opKnownHttpFailure(resp.status, resp); + case HttpStatusCode.BadGateway: + return opKnownHttpFailure(resp.status, resp); + case HttpStatusCode.GatewayTimeout: + return opKnownAlternativeFailure(resp, resp.status, codecForOutOfStockResponse()); + default: + return opUnknownFailure(resp, await resp.text()); + } + } /** @@ -753,6 +823,7 @@ export class TalerMerchantInstanceHttpClient { method: "PATCH", body, }); + } /** |