fix: urlencoded fields are parsed for env variables. fixes #2094

This commit is contained in:
Andrew Bastin
2022-01-28 17:34:15 +05:30
parent 248b6d6b64
commit 9e0eeb5b56

View File

@@ -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,