Merge pull request #887 from Andreas-Schoenefeldt/bugfix/bug-884

#884: Made sure graphql variables are only parsed after interpolation
This commit is contained in:
Anoop M D 2023-11-30 00:22:08 +05:30 committed by GitHub
commit b7e84f3623
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 1 deletions

View File

@ -275,6 +275,12 @@ const registerNetworkIpc = (mainWindow) => {
// interpolate variables inside request
interpolateVars(request, envVars, collectionVariables, processEnvVars);
// if this is a graphql request, parse the variables, only after interpolation
// https://github.com/usebruno/bruno/issues/884
if (request.mode === 'graphql') {
request.data.variables = JSON.parse(request.data.variables);
}
// stringify the request url encoded params
if (request.headers['content-type'] === 'application/x-www-form-urlencoded') {
request.data = qs.stringify(request.data);

View File

@ -101,6 +101,7 @@ const prepareRequest = (request, collectionRoot) => {
});
let axiosRequest = {
mode: request.body.mode,
method: request.method,
url,
headers,
@ -170,7 +171,8 @@ const prepareRequest = (request, collectionRoot) => {
if (request.body.mode === 'graphql') {
const graphqlQuery = {
query: get(request, 'body.graphql.query'),
variables: JSON.parse(decomment(get(request, 'body.graphql.variables') || '{}'))
// https://github.com/usebruno/bruno/issues/884 - we must only parse the variables after the variable interpolation
variables: decomment(get(request, 'body.graphql.variables') || '{}')
};
if (!contentTypeDefined) {
axiosRequest.headers['content-type'] = 'application/json';