Extracted fetchGqlSchema handler seperate from ipc handler

This commit is contained in:
devendra-bruno
2025-05-21 06:42:19 +05:30
parent 6cde453032
commit 9c9afaf78f

View File

@@ -317,6 +317,69 @@ const configureRequest = async (
return axiosInstance;
};
const fetchGqlSchema = async (endpoint, environment, _request, collection) => {
try {
// selected environment variables on collection level
const envVars = getEnvVars(environment);
const collectionRuntimeVars = collection.runtimeVariables;
const globalEnvironmentVars = collection.globalEnvironmentVariables;
const requestRuntimeVars = _request.vars;
// Precedence: globalEnvironmentVars < envVars < collectionRunTimeVars < requestRunTimeVars
const combinedVars = merge(
{},
globalEnvironmentVars,
envVars,
collectionRuntimeVars,
requestRuntimeVars
);
const collectionRoot = get(collection, 'root', {});
const request = prepareGqlIntrospectionRequest(endpoint, combinedVars, _request, collectionRoot);
request.timeout = preferencesUtil.getRequestTimeout();
if (!preferencesUtil.shouldVerifyTls()) {
request.httpsAgent = new https.Agent({
rejectUnauthorized: false
});
}
const collectionPath = collection.pathname;
const processEnvVars = getProcessEnvVars(collection.uid);
const axiosInstance = await configureRequest(
collection.uid,
request,
envVars,
collection.runtimeVariables,
processEnvVars,
collectionPath
);
const response = await axiosInstance(request);
return {
status: response.status,
statusText: response.statusText,
headers: response.headers,
data: response.data
};
} catch (error) {
if (error.response) {
return {
status: error.response.status,
statusText: error.response.statusText,
headers: error.response.headers,
data: error.response.data
};
}
return Promise.reject(error);
}
};
const registerNetworkIpc = (mainWindow) => {
const onConsoleLog = (type, args) => {
console[type](...args);
@@ -798,98 +861,9 @@ const registerNetworkIpc = (mainWindow) => {
});
});
ipcMain.handle('fetch-gql-schema', async (event, endpoint, environment, _request, collection) => {
try {
// selected environment variables on collection level
const envVars = getEnvVars(environment);
const collectionRuntimeVars = collection.runtimeVariables;
const globalEnvironmentVars = collection.globalEnvironmentVariables;
const requestRuntimeVars = _request.vars;
// Precedence: globalEnvironmentVars < envVars < collectionRunTimeVars < requestRunTimeVars
const combinedVars = merge(
{},
globalEnvironmentVars,
envVars,
collectionRuntimeVars,
requestRuntimeVars
);
const collectionRoot = get(collection, 'root', {});
const request = prepareGqlIntrospectionRequest(endpoint, combinedVars, _request, collectionRoot);
request.timeout = preferencesUtil.getRequestTimeout();
if (!preferencesUtil.shouldVerifyTls()) {
request.httpsAgent = new https.Agent({
rejectUnauthorized: false
});
}
const requestUid = uuid();
const collectionPath = collection.pathname;
const collectionUid = collection.uid;
const runtimeVariables = collection.runtimeVariables;
const processEnvVars = getProcessEnvVars(collectionUid);
const brunoConfig = getBrunoConfig(collection.uid);
const scriptingConfig = get(brunoConfig, 'scripts', {});
scriptingConfig.runtime = getJsSandboxRuntime(collection);
await runPreRequest(
request,
requestUid,
envVars,
collectionPath,
collection,
collectionUid,
runtimeVariables,
processEnvVars,
scriptingConfig
);
interpolateVars(request, envVars, collection.runtimeVariables, processEnvVars);
const axiosInstance = await configureRequest(
collection.uid,
request,
envVars,
collection.runtimeVariables,
processEnvVars,
collectionPath
);
const response = await axiosInstance(request);
await runPostResponse(
request,
response,
requestUid,
envVars,
collectionPath,
collection,
collectionUid,
runtimeVariables,
processEnvVars,
scriptingConfig
);
return {
status: response.status,
statusText: response.statusText,
headers: response.headers,
data: response.data
};
} catch (error) {
if (error.response) {
return {
status: error.response.status,
statusText: error.response.statusText,
headers: error.response.headers,
data: error.response.data
};
}
return Promise.reject(error);
}
// handler for fetch-gql-schema
ipcMain.handle('fetch-gql-schema', (event, endpoint, environment, _request, collection) => {
return fetchGqlSchema(endpoint, environment, _request, collection);
});
ipcMain.handle(
@@ -1349,3 +1323,4 @@ const registerNetworkIpc = (mainWindow) => {
module.exports = registerNetworkIpc;
module.exports.configureRequest = configureRequest;
module.exports.getCertsAndProxyConfig = getCertsAndProxyConfig;
module.exports.fetchGqlSchema = fetchGqlSchema;