refactor: add request variables to request runner flow

This commit is contained in:
nivedin
2024-02-14 19:06:12 +05:30
committed by Andrew Bastin
parent 2a0000cfc4
commit 11e8ba7bb3
2 changed files with 65 additions and 18 deletions

View File

@@ -1,4 +1,8 @@
import { Environment } from "@hoppscotch/data"
import {
Environment,
HoppRESTHeaders,
HoppRESTRequestVariable,
} from "@hoppscotch/data"
import { SandboxTestResult, TestDescriptor } from "@hoppscotch/js-sandbox"
import { runTestScript } from "@hoppscotch/js-sandbox/web"
import * as A from "fp-ts/Array"
@@ -65,10 +69,17 @@ const getTestableBody = (
return x
}
const combineEnvVariables = (envs: {
global: Environment["variables"]
selected: Environment["variables"]
}) => [...envs.selected, ...envs.global]
const combineEnvVariables = (variables: {
environments: {
global: Environment["variables"]
selected: Environment["variables"]
}
requestVariables: Environment["variables"]
}) => [
...variables.requestVariables,
...variables.environments.global,
...variables.environments.selected,
]
export const executedResponses$ = new Subject<
HoppRESTResponse & { type: "success" | "fail " }
@@ -175,15 +186,36 @@ export function runRESTRequest$(
requestHeaders = [...tab.value.document.request.headers]
}
const finalRequestVariables =
tab.value.document.request.requestVariables.map(
(v: HoppRESTRequestVariable) => {
if (v.active) {
return {
key: v.key,
value: v.value,
secret: false,
}
}
return []
}
)
const finalRequest = {
...tab.value.document.request,
auth: requestAuth ?? { authType: "none", authActive: false },
headers: requestHeaders,
headers: requestHeaders as HoppRESTHeaders,
}
const finalEnvs = {
environments: envs.right,
requestVariables: finalRequestVariables as Environment["variables"],
}
const effectiveRequest = getEffectiveRESTRequest(finalRequest, {
id: "env-id",
v: 1,
name: "Env",
variables: combineEnvVariables(envs.right),
variables: combineEnvVariables(finalEnvs),
})
const [stream, cancelRun] = createRESTNetworkRequestStream(effectiveRequest)