allow environment variables in request body. (#1942)
* feat: allow environment variables in request body * chore(ui): minor ui improvements * chore(deps): bump * fix: track env vars changes * feat: allow environment variables in request body * refactor: better implementation Co-authored-by: liyasthomas <liyascthomas@gmail.com> Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
This commit is contained in:
@@ -461,7 +461,8 @@ export default defineComponent({
|
|||||||
return "choose an environment"
|
return "choose an environment"
|
||||||
},
|
},
|
||||||
getEnvValue(value) {
|
getEnvValue(value) {
|
||||||
if (value) return value
|
if (value) return value.replace(/"/g, """)
|
||||||
|
// it does not filter special characters before adding them to HTML.
|
||||||
return "not found"
|
return "not found"
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,6 +1,16 @@
|
|||||||
import { Environment } from "~/newstore/environments"
|
import { Environment } from "~/newstore/environments"
|
||||||
|
|
||||||
export default function parseTemplateString(
|
export function parseBodyEnvVariables(
|
||||||
|
body: string,
|
||||||
|
env: Environment["variables"]
|
||||||
|
) {
|
||||||
|
return body.replace(/<<\w+>>/g, (key) => {
|
||||||
|
const found = env.find((envVar) => envVar.key === key.replace(/[<>]/g, ""))
|
||||||
|
return found ? found.value : key
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function parseTemplateString(
|
||||||
str: string,
|
str: string,
|
||||||
variables: Environment["variables"]
|
variables: Environment["variables"]
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { combineLatest, Observable } from "rxjs"
|
import { combineLatest, Observable } from "rxjs"
|
||||||
import { map } from "rxjs/operators"
|
import { map } from "rxjs/operators"
|
||||||
import { FormDataKeyValue, HoppRESTRequest } from "../types/HoppRESTRequest"
|
import { FormDataKeyValue, HoppRESTRequest } from "../types/HoppRESTRequest"
|
||||||
import parseTemplateString from "../templating"
|
import { parseTemplateString, parseBodyEnvVariables } from "../templating"
|
||||||
import { Environment, getGlobalVariables } from "~/newstore/environments"
|
import { Environment, getGlobalVariables } from "~/newstore/environments"
|
||||||
|
|
||||||
export interface EffectiveHoppRESTRequest extends HoppRESTRequest {
|
export interface EffectiveHoppRESTRequest extends HoppRESTRequest {
|
||||||
@@ -46,7 +46,7 @@ function getFinalBodyFromRequest(
|
|||||||
})
|
})
|
||||||
|
|
||||||
return formData
|
return formData
|
||||||
} else return request.body.body
|
} else return parseBodyEnvVariables(request.body.body, env.variables)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user