From 09bdd13227b68fc871cb71db5551741c984565bb Mon Sep 17 00:00:00 2001
From: Sean Clark <sclark@whitebox.com>
Date: Sun, 5 Nov 2023 12:53:01 -0500
Subject: [PATCH] feat(operationalParameter): Default to config headers for
 header params

If OpenAPI has paramaters that will be sent as headers, allow configuration to set those headers for the entire client.
---
 src/openApi/v3/parser/getOperationParameter.ts | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/openApi/v3/parser/getOperationParameter.ts b/src/openApi/v3/parser/getOperationParameter.ts
index 97a719c96..e8ecc9b66 100644
--- a/src/openApi/v3/parser/getOperationParameter.ts
+++ b/src/openApi/v3/parser/getOperationParameter.ts
@@ -54,7 +54,11 @@ export const getOperationParameter = (openApi: OpenApi, parameter: OpenApiParame
             operationParameter.base = model.base;
             operationParameter.template = model.template;
             operationParameter.imports.push(...model.imports);
-            operationParameter.default = getModelDefault(schema);
+            operationParameter.default =
+                parameter.in === 'header'
+                    ? `this.httpRequest.config.HEADERS['${parameter.name}']`
+                    : getModelDefault(schema);
+
             return operationParameter;
         } else {
             const model = getModel(openApi, schema);
@@ -80,11 +84,14 @@ export const getOperationParameter = (openApi: OpenApi, parameter: OpenApiParame
             operationParameter.maxProperties = model.maxProperties;
             operationParameter.minProperties = model.minProperties;
             operationParameter.pattern = getPattern(model.pattern);
-            operationParameter.default = model.default;
             operationParameter.imports.push(...model.imports);
             operationParameter.enum.push(...model.enum);
             operationParameter.enums.push(...model.enums);
             operationParameter.properties.push(...model.properties);
+
+            // param default if the value is a header should be the config header
+            operationParameter.default =
+                parameter.in === 'header' ? `this.httpRequest.config.HEADERS['${parameter.name}']` : model.default;
             return operationParameter;
         }
     }