summaryrefslogtreecommitdiff
path: root/packages/taler-util/src
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2024-03-21 12:11:31 -0300
committerSebastian <sebasjm@gmail.com>2024-03-26 16:57:55 -0300
commit8aa9ce6d20b41b7eb9b438a56ccd34cb0da35f80 (patch)
tree5cec8219a136469f2c689c47a74b28e52eb5992b /packages/taler-util/src
parent5a1f528d8806bcb15d5c4c8364554502c11931a7 (diff)
downloadwallet-core-8aa9ce6d20b41b7eb9b438a56ccd34cb0da35f80.tar.gz
wallet-core-8aa9ce6d20b41b7eb9b438a56ccd34cb0da35f80.tar.bz2
wallet-core-8aa9ce6d20b41b7eb9b438a56ccd34cb0da35f80.zip
wip
Diffstat (limited to 'packages/taler-util/src')
-rw-r--r--packages/taler-util/src/http-client/bank-core.ts2
-rw-r--r--packages/taler-util/src/http-client/merchant.ts54
-rw-r--r--packages/taler-util/src/index.ts1
3 files changed, 35 insertions, 22 deletions
diff --git a/packages/taler-util/src/http-client/bank-core.ts b/packages/taler-util/src/http-client/bank-core.ts
index c02bf1ec9..b544d56fe 100644
--- a/packages/taler-util/src/http-client/bank-core.ts
+++ b/packages/taler-util/src/http-client/bank-core.ts
@@ -76,7 +76,7 @@ export type TalerCoreBankErrorsByMethod<
> = FailCasesByMethod<TalerCoreBankHttpClient, prop>;
export enum TalerCoreBankCacheEviction {
- DELELE_ACCOUNT,
+ DELETE_ACCOUNT,
CREATE_ACCOUNT,
UPDATE_ACCOUNT,
UPDATE_PASSWORD,
diff --git a/packages/taler-util/src/http-client/merchant.ts b/packages/taler-util/src/http-client/merchant.ts
index 886844dba..7407cce66 100644
--- a/packages/taler-util/src/http-client/merchant.ts
+++ b/packages/taler-util/src/http-client/merchant.ts
@@ -67,9 +67,12 @@ import {
nullEvictor,
} from "./utils.js";
-export enum TalerMerchantCacheEviction {
+export enum TalerMerchantInstanceCacheEviction {
CREATE_ORDER,
}
+export enum TalerMerchantManagementCacheEviction {
+ CREATE_INSTANCE,
+}
/**
* Protocol version spoken with the core bank.
*
@@ -83,12 +86,12 @@ export class TalerMerchantInstanceHttpClient {
public readonly PROTOCOL_VERSION = "10:0:6";
readonly httpLib: HttpRequestLibrary;
- readonly cacheEvictor: CacheEvictor<TalerMerchantCacheEviction>;
+ readonly cacheEvictor: CacheEvictor<TalerMerchantInstanceCacheEviction>;
constructor(
readonly baseUrl: string,
httpClient?: HttpRequestLibrary,
- cacheEvictor?: CacheEvictor<TalerMerchantCacheEviction>,
+ cacheEvictor?: CacheEvictor<TalerMerchantInstanceCacheEviction>,
) {
this.httpLib = httpClient ?? createPlatformHttpLib();
this.cacheEvictor = cacheEvictor ?? nullEvictor;
@@ -354,16 +357,6 @@ export class TalerMerchantInstanceHttpClient {
}
/**
- * Get the auth api against the current instance
- *
- * https://docs.taler.net/core/api-merchant.html#post-[-instances-$INSTANCE]-private-token
- * https://docs.taler.net/core/api-merchant.html#delete-[-instances-$INSTANCE]-private-token
- */
- getAuthenticationAPI(): URL {
- return new URL(`/`, this.baseUrl);
- }
-
- /**
* https://docs.taler.net/core/api-merchant.html#patch-[-instances-$INSTANCE]-private
*/
async updateCurrentInstance(
@@ -731,13 +724,15 @@ export class TalerMerchantInstanceHttpClient {
method: "POST",
body,
});
- return TalerMerchantInstanceHttpClient.procesOrderCreationResponse(resp);
+ return this.procesOrderCreationResponse(resp)
}
- private static async procesOrderCreationResponse(resp: HttpResponse) {
+ private async procesOrderCreationResponse(resp: HttpResponse) {
switch (resp.status) {
- case HttpStatusCode.Ok:
- return opSuccessFromHttp(resp, codecForPostOrderResponse());
+ case HttpStatusCode.Ok: {
+ this.cacheEvictor.notifySuccess(TalerMerchantInstanceCacheEviction.CREATE_ORDER)
+ return opSuccessFromHttp(resp, codecForPostOrderResponse())
+ }
case HttpStatusCode.NotFound:
return opKnownHttpFailure(resp.status, resp);
case HttpStatusCode.Conflict:
@@ -1257,7 +1252,7 @@ export class TalerMerchantInstanceHttpClient {
body,
});
- return TalerMerchantInstanceHttpClient.procesOrderCreationResponse(resp);
+ return this.procesOrderCreationResponse(resp)
}
//
@@ -1475,18 +1470,32 @@ export class TalerMerchantInstanceHttpClient {
return opUnknownFailure(resp, await resp.text());
}
}
+
+ /**
+ * Get the auth api against the current instance
+ *
+ * https://docs.taler.net/core/api-merchant.html#post-[-instances-$INSTANCE]-private-token
+ * https://docs.taler.net/core/api-merchant.html#delete-[-instances-$INSTANCE]-private-token
+ */
+ getAuthenticationAPI(): URL {
+ return new URL(`private/`, this.baseUrl);
+ }
+
}
export class TalerMerchantManagementHttpClient extends TalerMerchantInstanceHttpClient {
+ readonly cacheManagementEvictor: CacheEvictor<TalerMerchantManagementCacheEviction>;
constructor(
readonly baseUrl: string,
httpClient?: HttpRequestLibrary,
- cacheEvictor?: CacheEvictor<TalerMerchantCacheEviction>,
+ cacheManagementEvictor?: CacheEvictor<TalerMerchantManagementCacheEviction>,
+ cacheEvictor?: CacheEvictor<TalerMerchantInstanceCacheEviction>,
) {
super(baseUrl, httpClient, cacheEvictor);
+ this.cacheManagementEvictor = cacheManagementEvictor ?? nullEvictor;
}
- getSubInstanceApi(instanceId: string) {
+ getSubInstanceAPI(instanceId: string) {
return new URL(`instances/${instanceId}`, this.baseUrl);
}
@@ -1505,9 +1514,12 @@ export class TalerMerchantManagementHttpClient extends TalerMerchantInstanceHttp
body,
});
+
switch (resp.status) {
- case HttpStatusCode.NoContent:
+ case HttpStatusCode.NoContent: {
+ this.cacheManagementEvictor.notifySuccess(TalerMerchantManagementCacheEviction.CREATE_INSTANCE)
return opEmptySuccess(resp);
+ }
case HttpStatusCode.Conflict:
return opKnownHttpFailure(resp.status, resp);
default:
diff --git a/packages/taler-util/src/index.ts b/packages/taler-util/src/index.ts
index 6b9a4ae2f..9bd4834d2 100644
--- a/packages/taler-util/src/index.ts
+++ b/packages/taler-util/src/index.ts
@@ -21,6 +21,7 @@ export * from "./helpers.js";
export * from "./http-client/bank-conversion.js";
export * from "./http-client/authentication.js";
export * from "./http-client/bank-core.js";
+export * from "./http-client/merchant.js";
export * from "./http-client/bank-integration.js";
export * from "./http-client/bank-revenue.js";
export * from "./http-client/bank-wire.js";