refactor: auth

Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
This commit is contained in:
liyasthomas
2021-08-12 09:56:05 +05:30
parent dad18aabcb
commit 971b35a252
8 changed files with 308 additions and 52 deletions

View File

@@ -27,24 +27,44 @@ export function getEffectiveRESTRequest(
request: HoppRESTRequest,
environment: Environment
): EffectiveHoppRESTRequest {
const effectiveFinalHeaders = request.headers
.filter(
(x) =>
x.key !== "" && // Remove empty keys
x.active // Only active
)
.map((x) => ({
// Parse out environment template strings
active: true,
key: parseTemplateString(x.key, environment.variables),
value: parseTemplateString(x.value, environment.variables),
}))
// Authentication
// TODO: Support a better b64 implementation than btoa ?
if (request.auth.authType === "basic") {
effectiveFinalHeaders.push({
active: true,
key: "Authorization",
value: `Basic ${btoa(
`${request.auth.username}:${request.auth.password}`
)}`,
})
} else if (request.auth.authType === "bearer") {
effectiveFinalHeaders.push({
active: true,
key: "Authorization",
value: `Bearer ${request.auth.token}`,
})
}
return {
...request,
effectiveFinalURL: parseTemplateString(
request.endpoint,
environment.variables
),
effectiveFinalHeaders: request.headers
.filter(
(x) =>
x.key !== "" && // Remove empty keys
x.active // Only active
)
.map((x) => ({
// Parse out environment template strings
active: true,
key: parseTemplateString(x.key, environment.variables),
value: parseTemplateString(x.value, environment.variables),
})),
effectiveFinalHeaders,
effectiveFinalParams: request.params
.filter(
(x) =>