summaryrefslogtreecommitdiff
path: root/packages/taler-util/src/http-client/merchant.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-util/src/http-client/merchant.ts')
-rw-r--r--packages/taler-util/src/http-client/merchant.ts77
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,
});
+
}
/**