Invalid requests generated for queries without input variables
davjo664 opened this issue · comments
When generating requests for queries without any variables the query becomes:
static Json request() {
Json query = R"(
query Orders(
) {
orders {
id
orderNo
}
}
)";
Json variables;
return {{"query", std::move(query)}, {"variables", std::move(variables)}};
}
This results in an error when sending the query to my GraphQL API because of the empty variables input query Orders( ) { .... } it should be query Orders { ... }.
Would appreciate if this issue could be solved. 👍
Suggested solution in CodeGeneration.cpp:
QueryDocument generateQueryDocument(
Field const & field, Operation operation, TypeMap const & typeMap, size_t indentation) {
QueryDocument document;
auto & query = document.query;
auto & variables = document.variables;
auto selectionSet = generateQueryField(field, typeMap, "", variables, indentation + 1);
query += indent(indentation) + operationQueryName(operation) + " " + capitalize(field.name);
if (variables.size()) {
query += "(\n";
for (auto const & variable : variables) {
query += indent(indentation + 1) + "$" + variable.name + ": " + graphqlTypeName(variable.type) + "\n";
}
query += indent(indentation) + ")";
}
query += " {\n";
query += selectionSet;
query += indent(indentation) + "}\n";
return document;
}
#8 PR