Просмотр исходного кода

fix: fix url getting overridden when query params are present (#3130)

Akash K 1 год назад
Родитель
Сommit
270f796683

+ 14 - 7
packages/hoppscotch-common/src/helpers/RESTExtURLParams.ts

@@ -6,14 +6,18 @@ import { isJSONContentType } from "./utils/contenttypes"
  * Handles translations for all the hopp.io REST Shareable URL params
  */
 export function translateExtURLParams(
-  urlParams: Record<string, any>
+  urlParams: Record<string, any>,
+  initialReq?: HoppRESTRequest
 ): HoppRESTRequest {
-  if (urlParams.v) return parseV1ExtURL(urlParams)
-  else return parseV0ExtURL(urlParams)
+  if (urlParams.v) return parseV1ExtURL(urlParams, initialReq)
+  else return parseV0ExtURL(urlParams, initialReq)
 }
 
-function parseV0ExtURL(urlParams: Record<string, any>): HoppRESTRequest {
-  const resolvedReq = getDefaultRESTRequest()
+function parseV0ExtURL(
+  urlParams: Record<string, any>,
+  initialReq?: HoppRESTRequest
+): HoppRESTRequest {
+  const resolvedReq = initialReq ?? getDefaultRESTRequest()
 
   if (urlParams.method && typeof urlParams.method === "string") {
     resolvedReq.method = urlParams.method
@@ -89,8 +93,11 @@ function parseV0ExtURL(urlParams: Record<string, any>): HoppRESTRequest {
   return resolvedReq
 }
 
-function parseV1ExtURL(urlParams: Record<string, any>): HoppRESTRequest {
-  const resolvedReq = getDefaultRESTRequest()
+function parseV1ExtURL(
+  urlParams: Record<string, any>,
+  initialReq?: HoppRESTRequest
+): HoppRESTRequest {
+  const resolvedReq = initialReq ?? getDefaultRESTRequest()
 
   if (urlParams.headers && typeof urlParams.headers === "string") {
     resolvedReq.headers = JSON.parse(urlParams.headers)

+ 4 - 1
packages/hoppscotch-common/src/pages/index.vue

@@ -154,8 +154,11 @@ function bindRequestToURLParams() {
     // If query params are empty, or contains code or error param (these are from Oauth Redirect)
     // We skip URL params parsing
     if (Object.keys(query).length === 0 || query.code || query.error) return
+
+    const request = currentActiveTab.value.document.request
+
     currentActiveTab.value.document.request = safelyExtractRESTRequest(
-      translateExtURLParams(query),
+      translateExtURLParams(query, request),
       getDefaultRESTRequest()
     )
   })