From 270f79668382ec412bb95bb916c6f762027e896e Mon Sep 17 00:00:00 2001 From: Akash K <57758277+amk-dev@users.noreply.github.com> Date: Fri, 9 Jun 2023 21:53:55 +0530 Subject: [PATCH] fix: fix url getting overridden when query params are present (#3130) --- .../src/helpers/RESTExtURLParams.ts | 21 ++++++++++++------- .../hoppscotch-common/src/pages/index.vue | 5 ++++- 2 files changed, 18 insertions(+), 8 deletions(-) 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() ) })