diff options
author | Sebastian <sebasjm@gmail.com> | 2024-04-05 13:01:45 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2024-04-05 13:01:45 -0300 |
commit | 4759ceae7014771a8a23df4800b0fbd016870621 (patch) | |
tree | 1e27323313560e15a35b0122630a846e468e7c28 /packages/taler-util/src/http-client/bank-revenue.ts | |
parent | 89dde053665d39be8367c25691efc008fc2a5cc7 (diff) | |
download | wallet-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.ts | 71 |
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: |