gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-wallet-core] 01/03: add support for FormData


From: gnunet
Subject: [taler-wallet-core] 01/03: add support for FormData
Date: Wed, 21 Aug 2024 15:25:41 +0200

This is an automated email from the git hooks/post-receive script.

sebasjm pushed a commit to branch master
in repository wallet-core.

commit c63b6481d62278488dac3870c88917f39c4d2b13
Author: Sebastian <sebasjm@gmail.com>
AuthorDate: Tue Aug 20 12:20:20 2024 -0300

    add support for FormData
---
 packages/taler-util/src/http-client/exchange.ts | 8 +++++---
 packages/taler-util/src/http-common.ts          | 2 ++
 packages/taler-util/src/types-taler-exchange.ts | 2 +-
 packages/web-util/src/utils/http-impl.sw.ts     | 9 +++++++++
 4 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/packages/taler-util/src/http-client/exchange.ts 
b/packages/taler-util/src/http-client/exchange.ts
index 790c890f8..9b7635cb4 100644
--- a/packages/taler-util/src/http-client/exchange.ts
+++ b/packages/taler-util/src/http-client/exchange.ts
@@ -51,6 +51,7 @@ import {
   codecForExchangeConfig,
   codecForExchangeKeys,
   codecForKycProcessClientInformation,
+  codecForKycProcessStartInformation,
   codecForLegitimizationNeededResponse
 } from "../types-taler-exchange.js";
 import { CacheEvictor, addMerchantPaginationParams, nullEvictor } from 
"./utils.js";
@@ -319,17 +320,18 @@ export class TalerExchangeHttpClient {
    * https://docs.taler.net/core/api-exchange.html#post--kyc-start-$ID
    *
    */
-  async startKycProcess(requirement: KycRequirementInformationId) {
+  async startKycProcess(requirement: KycRequirementInformationId, body: object 
= {}) {
     const url = new URL(`kyc-start/${requirement}`, this.baseUrl);
 
 
     const resp = await this.httpLib.fetch(url.href, {
       method: "POST",
+      body
     });
 
     switch (resp.status) {
-      case HttpStatusCode.NoContent:
-        return opEmptySuccess(resp);
+      case HttpStatusCode.Ok:
+        return opSuccessFromHttp(resp, codecForKycProcessStartInformation());
       case HttpStatusCode.NotFound:
         return opKnownHttpFailure(resp.status, resp);
       case HttpStatusCode.Conflict:
diff --git a/packages/taler-util/src/http-common.ts 
b/packages/taler-util/src/http-common.ts
index 6f537dda2..7e7173ac5 100644
--- a/packages/taler-util/src/http-common.ts
+++ b/packages/taler-util/src/http-common.ts
@@ -502,6 +502,8 @@ export function encodeBody(body: unknown): ArrayBuffer {
     return body.buffer;
   } else if (body instanceof ArrayBuffer) {
     return body;
+  } else if (typeof body === "object" && body.constructor.name === "FormData") 
{
+    return body as ArrayBuffer;
   } else if (typeof body === "object") {
     return textEncoder.encode(JSON.stringify(body)).buffer;
   }
diff --git a/packages/taler-util/src/types-taler-exchange.ts 
b/packages/taler-util/src/types-taler-exchange.ts
index dcd62bec2..0cd722239 100644
--- a/packages/taler-util/src/types-taler-exchange.ts
+++ b/packages/taler-util/src/types-taler-exchange.ts
@@ -2483,7 +2483,7 @@ export const codecForKycProcessClientInformation =
       )
       .build("TalerExchangeApi.KycProcessClientInformation");
 
-interface KycProcessStartInformation {
+export interface KycProcessStartInformation {
   // URL to open.
   redirect_url: string;
 }
diff --git a/packages/web-util/src/utils/http-impl.sw.ts 
b/packages/web-util/src/utils/http-impl.sw.ts
index 7b168b739..21e328363 100644
--- a/packages/web-util/src/utils/http-impl.sw.ts
+++ b/packages/web-util/src/utils/http-impl.sw.ts
@@ -99,6 +99,15 @@ export class BrowserFetchHttpLib implements 
HttpRequestLibrary {
       });
     }
 
+    /**
+     * default header assume everything is json
+     * in case of formData the content-type will be
+     * auto generated
+     */
+    if (myBody instanceof FormData) {
+      delete requestHeadersMap["Content-Type"]
+    }
+
     const controller = new AbortController();
     let timeoutId: ReturnType<typeof setTimeout> | undefined;
     if (requestTimeout.d_ms !== "forever") {

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]