diff options
Diffstat (limited to 'packages/taler-util/src/MerchantApiClient.ts')
-rw-r--r-- | packages/taler-util/src/MerchantApiClient.ts | 29 |
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); |