diff --git a/packages/hoppscotch-common/src/helpers/RESTExtURLParams.ts b/packages/hoppscotch-common/src/helpers/RESTExtURLParams.ts index fbb81e5ac..453100bfb 100644 --- a/packages/hoppscotch-common/src/helpers/RESTExtURLParams.ts +++ b/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 + urlParams: Record, + 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): HoppRESTRequest { - const resolvedReq = getDefaultRESTRequest() +function parseV0ExtURL( + urlParams: Record, + 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): HoppRESTRequest { return resolvedReq } -function parseV1ExtURL(urlParams: Record): HoppRESTRequest { - const resolvedReq = getDefaultRESTRequest() +function parseV1ExtURL( + urlParams: Record, + initialReq?: HoppRESTRequest +): HoppRESTRequest { + const resolvedReq = initialReq ?? getDefaultRESTRequest() if (urlParams.headers && typeof urlParams.headers === "string") { resolvedReq.headers = JSON.parse(urlParams.headers) diff --git a/packages/hoppscotch-common/src/pages/index.vue b/packages/hoppscotch-common/src/pages/index.vue index f964da1be..f1b7e7d4c 100644 --- a/packages/hoppscotch-common/src/pages/index.vue +++ b/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() ) })