summaryrefslogtreecommitdiff
path: root/packages/taler-util/src
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2024-03-26 16:54:35 -0300
committerSebastian <sebasjm@gmail.com>2024-03-26 16:57:59 -0300
commitdd5aa2145f06a4744cf8f4f3fe14525b613acf87 (patch)
tree4556037bb742370774a5400c61f2b6ac1345092e /packages/taler-util/src
parentaf633723b3beae2588c55fd94630a42f27b3f2b1 (diff)
downloadwallet-core-dd5aa2145f06a4744cf8f4f3fe14525b613acf87.tar.gz
wallet-core-dd5aa2145f06a4744cf8f4f3fe14525b613acf87.tar.bz2
wallet-core-dd5aa2145f06a4744cf8f4f3fe14525b613acf87.zip
fix #8660
Diffstat (limited to 'packages/taler-util/src')
-rw-r--r--packages/taler-util/src/http-client/authentication.ts12
-rw-r--r--packages/taler-util/src/http-client/bank-core.ts10
-rw-r--r--packages/taler-util/src/http-client/merchant.ts6
-rw-r--r--packages/taler-util/src/http-common.ts1
-rw-r--r--packages/taler-util/src/http-impl.node.ts9
-rw-r--r--packages/taler-util/src/http-impl.qtart.ts8
6 files changed, 31 insertions, 15 deletions
diff --git a/packages/taler-util/src/http-client/authentication.ts b/packages/taler-util/src/http-client/authentication.ts
index 00ef21a06..f77df2ed0 100644
--- a/packages/taler-util/src/http-client/authentication.ts
+++ b/packages/taler-util/src/http-client/authentication.ts
@@ -45,7 +45,6 @@ export class TalerAuthenticationHttpClient {
constructor(
readonly baseUrl: string,
- readonly username: string,
httpClient?: HttpRequestLibrary,
) {
this.httpLib = httpClient ?? createPlatformHttpLib();
@@ -61,7 +60,8 @@ export class TalerAuthenticationHttpClient {
*
* @returns
*/
- async createAccessToken(
+ async createAccessTokenBasic(
+ username: string,
password: string,
body: TalerAuthentication.TokenRequest,
) {
@@ -69,7 +69,7 @@ export class TalerAuthenticationHttpClient {
const resp = await this.httpLib.fetch(url.href, {
method: "POST",
headers: {
- Authorization: makeBasicAuthHeader(this.username, password),
+ Authorization: makeBasicAuthHeader(username, password),
},
body,
});
@@ -90,15 +90,15 @@ export class TalerAuthenticationHttpClient {
*
* @returns
*/
- async createAccessTokenMerchant(
- password: string,
+ async createAccessTokenBearer(
+ token: string,
body: TalerAuthentication.TokenRequest,
) {
const url = new URL(`token`, this.baseUrl);
const resp = await this.httpLib.fetch(url.href, {
method: "POST",
headers: {
- Authorization: makeBearerTokenAuthHeader(password as AccessToken),
+ Authorization: makeBearerTokenAuthHeader(token as AccessToken),
},
body,
});
diff --git a/packages/taler-util/src/http-client/bank-core.ts b/packages/taler-util/src/http-client/bank-core.ts
index b544d56fe..7a98b6281 100644
--- a/packages/taler-util/src/http-client/bank-core.ts
+++ b/packages/taler-util/src/http-client/bank-core.ts
@@ -140,16 +140,18 @@ export class TalerCoreBankHttpClient {
*
*/
async createAccount(
- auth: AccessToken,
+ auth: AccessToken | undefined,
body: TalerCorebankApi.RegisterAccountRequest,
) {
const url = new URL(`accounts`, this.baseUrl);
+ const headers: Record<string, string> = {}
+ if (auth) {
+ headers.Authorization = makeBearerTokenAuthHeader(auth)
+ }
const resp = await this.httpLib.fetch(url.href, {
method: "POST",
body,
- headers: {
- Authorization: makeBearerTokenAuthHeader(auth),
- },
+ headers: headers,
});
switch (resp.status) {
case HttpStatusCode.Ok: {
diff --git a/packages/taler-util/src/http-client/merchant.ts b/packages/taler-util/src/http-client/merchant.ts
index 1b1a7b4a8..394625e38 100644
--- a/packages/taler-util/src/http-client/merchant.ts
+++ b/packages/taler-util/src/http-client/merchant.ts
@@ -354,10 +354,11 @@ export class TalerMerchantInstanceHttpClient {
headers,
});
- //
switch (resp.status) {
case HttpStatusCode.Ok:
return opEmptySuccess(resp);
+ case HttpStatusCode.NoContent: // FIXME: missing in docs
+ return opEmptySuccess(resp);
case HttpStatusCode.NotFound:
return opKnownHttpFailure(resp.status, resp);
default:
@@ -1778,9 +1779,10 @@ export class TalerMerchantManagementHttpClient extends TalerMerchantInstanceHttp
*/
async updateInstanceAuthentication(
token: AccessToken | undefined,
+ instanceId: string,
body: TalerMerchantApi.InstanceAuthConfigurationMessage,
) {
- const url = new URL(`management/instances`, this.baseUrl);
+ const url = new URL(`management/instances/${instanceId}/auth`, this.baseUrl);
const headers: Record<string, string> = {}
if (token) {
diff --git a/packages/taler-util/src/http-common.ts b/packages/taler-util/src/http-common.ts
index 3973e66fb..cc75debd5 100644
--- a/packages/taler-util/src/http-common.ts
+++ b/packages/taler-util/src/http-common.ts
@@ -440,6 +440,7 @@ export interface HttpLibArgs {
* Only allow HTTPS connections, not plain http.
*/
requireTls?: boolean;
+ printAsCurl?: boolean;
}
export function encodeBody(body: any): ArrayBuffer {
diff --git a/packages/taler-util/src/http-impl.node.ts b/packages/taler-util/src/http-impl.node.ts
index b5c87843f..8606bc451 100644
--- a/packages/taler-util/src/http-impl.node.ts
+++ b/packages/taler-util/src/http-impl.node.ts
@@ -119,8 +119,13 @@ export class HttpLibImpl implements HttpRequestLibrary {
timeoutMs = DEFAULT_REQUEST_TIMEOUT_MS;
}
- const requestHeadersMap = { ...getDefaultHeaders(method), ...opt?.headers };
-
+ const requestHeadersMap = getDefaultHeaders(method);
+ if (opt?.headers) {
+ Object.entries(opt?.headers).forEach(([key, value]) => {
+ if (value === undefined) return;
+ requestHeadersMap[key] = value
+ })
+ }
logger.trace(`request timeout ${timeoutMs} ms`);
let reqBody: ArrayBuffer | undefined;
diff --git a/packages/taler-util/src/http-impl.qtart.ts b/packages/taler-util/src/http-impl.qtart.ts
index 0be9f2c23..b4e4ebbe7 100644
--- a/packages/taler-util/src/http-impl.qtart.ts
+++ b/packages/taler-util/src/http-impl.qtart.ts
@@ -98,7 +98,13 @@ export class HttpLibImpl implements HttpRequestLibrary {
}
let data: ArrayBuffer | undefined = undefined;
- const requestHeadersMap = { ...getDefaultHeaders(method), ...opt?.headers };
+ const requestHeadersMap = getDefaultHeaders(method);
+ if (opt?.headers) {
+ Object.entries(opt?.headers).forEach(([key, value]) => {
+ if (value === undefined) return;
+ requestHeadersMap[key] = value
+ })
+ }
let headersList: string[] = [];
for (let headerName of Object.keys(requestHeadersMap)) {
headersList.push(`${headerName}: ${requestHeadersMap[headerName]}`);