From 9e0eeb5b56296c8935d5f4f7f262c29bb4faa866 Mon Sep 17 00:00:00 2001 From: Andrew Bastin Date: Fri, 28 Jan 2022 17:34:15 +0530 Subject: [PATCH] fix: urlencoded fields are parsed for env variables. fixes #2094 --- .../helpers/utils/EffectiveURL.ts | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/packages/hoppscotch-app/helpers/utils/EffectiveURL.ts b/packages/hoppscotch-app/helpers/utils/EffectiveURL.ts index 272f913d5..b2898bce4 100644 --- a/packages/hoppscotch-app/helpers/utils/EffectiveURL.ts +++ b/packages/hoppscotch-app/helpers/utils/EffectiveURL.ts @@ -59,7 +59,7 @@ export const resolvesEnvsInBody = ( function getFinalBodyFromRequest( request: HoppRESTRequest, - env: Environment + envVariables: Environment["variables"] ): FormData | string | null { if (request.body.contentType === null) { return null @@ -73,7 +73,13 @@ function getFinalBodyFromRequest( // Filter out active A.filter((x) => x.active), // Convert to tuple - A.map(({ key, value }) => [key, value] as [string, string]), + A.map( + ({ key, value }) => + [ + parseTemplateString(key, envVariables), + parseTemplateString(value, envVariables), + ] as [string, string] + ), // Tuple to Record object tupleToRecord, // Stringify @@ -98,19 +104,19 @@ function getFinalBodyFromRequest( arrayFlatMap((x) => x.isFile ? x.value.map((v) => ({ - key: parseTemplateString(x.key, env.variables), + key: parseTemplateString(x.key, envVariables), value: v as string | Blob, })) : [ { - key: parseTemplateString(x.key, env.variables), - value: parseTemplateString(x.value, env.variables), + key: parseTemplateString(x.key, envVariables), + value: parseTemplateString(x.value, envVariables), }, ] ), toFormData ) - } else return parseBodyEnvVariables(request.body.body, env.variables) + } else return parseBodyEnvVariables(request.body.body, envVariables) } /** @@ -194,7 +200,7 @@ export function getEffectiveRESTRequest( } } - const effectiveFinalBody = getFinalBodyFromRequest(request, environment) + const effectiveFinalBody = getFinalBodyFromRequest(request, envVariables) if (request.body.contentType) effectiveFinalHeaders.push({ active: true,