summaryrefslogtreecommitdiff
path: root/packages/taler-util/src/MerchantApiClient.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-util/src/MerchantApiClient.ts')
-rw-r--r--packages/taler-util/src/MerchantApiClient.ts29
1 files changed, 26 insertions, 3 deletions
diff --git a/packages/taler-util/src/MerchantApiClient.ts b/packages/taler-util/src/MerchantApiClient.ts
index 561226ba9..db1ffef4e 100644
--- a/packages/taler-util/src/MerchantApiClient.ts
+++ b/packages/taler-util/src/MerchantApiClient.ts
@@ -362,8 +362,30 @@ export class MerchantApiClient {
body: req,
headers: this.makeAuthHeader(),
});
- if (resp.status !== 204) {
- throw Error("failed to create template");
+ switch (resp.status) {
+ case HttpStatusCode.Ok:
+ case HttpStatusCode.NoContent:
+ return opEmptySuccess(resp);
+ case HttpStatusCode.NotFound:
+ return opKnownHttpFailure(resp.status, resp);
+ default:
+ return opUnknownFailure(resp, await resp.text());
+ }
+ }
+
+ async getTemplate(templateId: string) {
+ let url = new URL(`private/templates/${templateId}`, this.baseUrl);
+ const resp = await this.httpClient.fetch(url.href, {
+ method: "GET",
+ headers: this.makeAuthHeader(),
+ });
+ switch (resp.status) {
+ case HttpStatusCode.Ok:
+ return opSuccess(resp, codecForAny());
+ case HttpStatusCode.NotFound:
+ return opKnownHttpFailure(resp.status, resp);
+ default:
+ return opUnknownFailure(resp, await resp.text());
}
}
@@ -391,7 +413,7 @@ export class MerchantApiClient {
async createOtpDevice(
req: OtpDeviceAddDetails,
): Promise<OperationOk<void> | OperationFail<HttpStatusCode.NotFound>> {
- let url = new URL("private/templates", this.baseUrl);
+ let url = new URL("private/otp-devices", this.baseUrl);
const resp = await this.httpClient.fetch(url.href, {
method: "POST",
body: req,
@@ -399,6 +421,7 @@ export class MerchantApiClient {
});
switch (resp.status) {
case HttpStatusCode.Ok:
+ case HttpStatusCode.NoContent:
return opEmptySuccess(resp);
case HttpStatusCode.NotFound:
return opKnownHttpFailure(resp.status, resp);