From 0fa0b3ef8505ede421417f240db9118813d9accc Mon Sep 17 00:00:00 2001 From: lohxt1 Date: Tue, 8 Oct 2024 16:46:26 +0530 Subject: [PATCH] fix: generate code updates --- .../CollectionItem/GenerateCodeItem/CodeView/index.js | 5 ++++- .../CollectionItem/GenerateCodeItem/index.js | 10 ++++++++-- packages/bruno-app/src/utils/url/index.js | 3 ++- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/GenerateCodeItem/CodeView/index.js b/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/GenerateCodeItem/CodeView/index.js index 28f68a5a7..3092df4ba 100644 --- a/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/GenerateCodeItem/CodeView/index.js +++ b/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/GenerateCodeItem/CodeView/index.js @@ -10,6 +10,7 @@ import toast from 'react-hot-toast'; import { IconCopy } from '@tabler/icons'; import { findCollectionByItemUid, getGlobalEnvironmentVariables } from '../../../../../../../utils/collections/index'; import { getAuthHeaders } from '../../../../../../../utils/codegenerator/auth'; +import { cloneDeep } from 'lodash'; const CodeView = ({ language, item }) => { const { displayedTheme } = useTheme(); @@ -17,11 +18,13 @@ const CodeView = ({ language, item }) => { const { globalEnvironments, activeGlobalEnvironmentUid } = useSelector((state) => state.globalEnvironments); const { target, client, language: lang } = language; const requestHeaders = item.draft ? get(item, 'draft.request.headers') : get(item, 'request.headers'); - let collection = findCollectionByItemUid( + let _collection = findCollectionByItemUid( useSelector((state) => state.collections.collections), item.uid ); + let collection = cloneDeep(_collection); + // add selected global env variables to the collection object const globalEnvironmentVariables = getGlobalEnvironmentVariables({ globalEnvironments, activeGlobalEnvironmentUid }); collection.globalEnvironmentVariables = globalEnvironmentVariables; diff --git a/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/GenerateCodeItem/index.js b/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/GenerateCodeItem/index.js index 9d24df1f0..aabed03dd 100644 --- a/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/GenerateCodeItem/index.js +++ b/packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/GenerateCodeItem/index.js @@ -3,15 +3,20 @@ import { useState } from 'react'; import CodeView from './CodeView'; import StyledWrapper from './StyledWrapper'; import { isValidUrl } from 'utils/url'; -import { find, get } from 'lodash'; +import { get } from 'lodash'; import { findEnvironmentInCollection } from 'utils/collections'; import { interpolateUrl, interpolateUrlPathParams } from 'utils/url/index'; import { getLanguages } from 'utils/codegenerator/targets'; +import { useSelector } from 'react-redux'; +import { getGlobalEnvironmentVariables } from 'utils/collections/index'; const GenerateCodeItem = ({ collection, item, onClose }) => { const languages = getLanguages(); - const environment = findEnvironmentInCollection(collection, collection.activeEnvironmentUid); + const { globalEnvironments, activeGlobalEnvironmentUid } = useSelector((state) => state.globalEnvironments); + const globalEnvironmentVariables = getGlobalEnvironmentVariables({ globalEnvironments, activeGlobalEnvironmentUid }); + + const environment = findEnvironmentInCollection(collection, collection?.activeEnvironmentUid); let envVars = {}; if (environment) { const vars = get(environment, 'variables', []); @@ -27,6 +32,7 @@ const GenerateCodeItem = ({ collection, item, onClose }) => { // interpolate the url const interpolatedUrl = interpolateUrl({ url: requestUrl, + globalEnvironmentVariables, envVars, runtimeVariables: collection.runtimeVariables, processEnvVars: collection.processEnvVariables diff --git a/packages/bruno-app/src/utils/url/index.js b/packages/bruno-app/src/utils/url/index.js index 8785df00b..852b5fab3 100644 --- a/packages/bruno-app/src/utils/url/index.js +++ b/packages/bruno-app/src/utils/url/index.js @@ -108,12 +108,13 @@ export const isValidUrl = (url) => { } }; -export const interpolateUrl = ({ url, envVars, runtimeVariables, processEnvVars }) => { +export const interpolateUrl = ({ url, globalEnvironmentVariables = {}, envVars, runtimeVariables, processEnvVars }) => { if (!url || !url.length || typeof url !== 'string') { return; } return interpolate(url, { + ...globalEnvironmentVariables, ...envVars, ...runtimeVariables, process: {