aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-util/src/http-client/bank-revenue.ts
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2024-04-05 13:01:45 -0300
committerSebastian <sebasjm@gmail.com>2024-04-05 13:01:45 -0300
commit4759ceae7014771a8a23df4800b0fbd016870621 (patch)
tree1e27323313560e15a35b0122630a846e468e7c28 /packages/taler-util/src/http-client/bank-revenue.ts
parent89dde053665d39be8367c25691efc008fc2a5cc7 (diff)
downloadwallet-core-4759ceae7014771a8a23df4800b0fbd016870621.tar.xz
wip #8276
Diffstat (limited to 'packages/taler-util/src/http-client/bank-revenue.ts')
-rw-r--r--packages/taler-util/src/http-client/bank-revenue.ts71
1 files changed, 46 insertions, 25 deletions
diff --git a/packages/taler-util/src/http-client/bank-revenue.ts b/packages/taler-util/src/http-client/bank-revenue.ts
index d2f0c7000..b195e8c8f 100644
--- a/packages/taler-util/src/http-client/bank-revenue.ts
+++ b/packages/taler-util/src/http-client/bank-revenue.ts
@@ -14,9 +14,14 @@
GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-import { HttpRequestLibrary, makeBasicAuthHeader, readTalerErrorResponse } from "../http-common.js";
+import {
+ HttpRequestLibrary,
+ makeBasicAuthHeader,
+ readTalerErrorResponse,
+} from "../http-common.js";
import { HttpStatusCode } from "../http-status-codes.js";
import { createPlatformHttpLib } from "../http.js";
+import { LibtoolVersion } from "../libtool-version.js";
import {
FailCasesByMethod,
ResultByMethod,
@@ -27,7 +32,8 @@ import {
import {
LongPollParams,
PaginationParams,
- codecForMerchantIncomingHistory,
+ codecForRevenueConfig,
+ codecForRevenueIncomingHistory,
} from "./types.js";
import { addLongPollingParam, addPaginationParams } from "./utils.js";
@@ -47,50 +53,65 @@ export class TalerRevenueHttpClient {
constructor(
readonly baseUrl: string,
- readonly username: string,
httpClient?: HttpRequestLibrary,
) {
this.httpLib = httpClient ?? createPlatformHttpLib();
}
- // public readonly PROTOCOL_VERSION = "4:0:0";
- // isCompatible(version: string): boolean {
- // const compare = LibtoolVersion.compare(this.PROTOCOL_VERSION, version)
- // return compare?.compatible ?? false
- // }
- // /**
- // * https://docs.taler.net/core/api-corebank.html#config
- // *
- // */
- // async getConfig() {
- // const url = new URL(`config`, this.baseUrl);
- // const resp = await this.httpLib.fetch(url.href, {
- // method: "GET"
- // });
- // switch (resp.status) {
- // case HttpStatusCode.Ok: return opSuccess(resp, codecForCoreBankConfig())
- // default: return opUnknownFailure(resp, await resp.text())
- // }
- // }
+ public readonly PROTOCOL_VERSION = "0:0:0";
+
+ isCompatible(version: string): boolean {
+ const compare = LibtoolVersion.compare(this.PROTOCOL_VERSION, version);
+ return compare?.compatible ?? false;
+ }
+
+ /**
+ * https://docs.taler.net/core/api-bank-revenue.html#get--config
+ *
+ */
+ async getConfig() {
+ const url = new URL(`config`, this.baseUrl);
+ const resp = await this.httpLib.fetch(url.href, {
+ method: "GET",
+ });
+ switch (resp.status) {
+ case HttpStatusCode.Ok:
+ return opSuccessFromHttp(resp, codecForRevenueConfig());
+ case HttpStatusCode.NotFound:
+ return opKnownHttpFailure(resp.status, resp);
+ default:
+ return opUnknownFailure(resp, await readTalerErrorResponse(resp));
+ }
+ }
/**
* https://docs.taler.net/core/api-bank-revenue.html#get--history
*
* @returns
*/
- async getHistory(auth: string, params?: PaginationParams & LongPollParams) {
+ async getHistory(
+ auth:
+ | {
+ username: string;
+ password: string;
+ }
+ | undefined,
+ params?: PaginationParams & LongPollParams,
+ ) {
const url = new URL(`history`, this.baseUrl);
addPaginationParams(url, params);
addLongPollingParam(url, params);
const resp = await this.httpLib.fetch(url.href, {
method: "GET",
headers: {
- Authorization: makeBasicAuthHeader(this.username, auth),
+ Authorization: auth
+ ? makeBasicAuthHeader(auth.username, auth.password)
+ : undefined,
},
});
switch (resp.status) {
case HttpStatusCode.Ok:
- return opSuccessFromHttp(resp, codecForMerchantIncomingHistory());
+ return opSuccessFromHttp(resp, codecForRevenueIncomingHistory());
case HttpStatusCode.BadRequest:
return opKnownHttpFailure(resp.status, resp);
case HttpStatusCode.Unauthorized: