Skip to content

Commit b3b5e8e

Browse files
authored
Define query while declaring (#177)
1 parent 8d9d0ed commit b3b5e8e

File tree

1 file changed

+21
-22
lines changed

1 file changed

+21
-22
lines changed

smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/integration/HttpBindingProtocolGenerator.java

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -316,28 +316,27 @@ private boolean writeRequestQueryString(
316316

317317
// Build the initial query bag.
318318
Map<String, String> queryLiterals = trait.getUri().getQueryLiterals();
319-
if (!queryLiterals.isEmpty()) {
320-
// Write any query literals present in the uri.
321-
writer.openBlock("const query: any = {", "};",
322-
() -> queryLiterals.forEach((k, v) -> writer.write("$S: $S,", k, v)));
323-
} else if (!queryBindings.isEmpty()) {
324-
writer.write("const query: any = {};");
325-
}
326-
327-
// Handle any additional query bindings.
328-
if (!queryBindings.isEmpty()) {
329-
Model model = context.getModel();
330-
for (HttpBinding binding : queryBindings) {
331-
String memberName = symbolProvider.toMemberName(binding.getMember());
332-
writer.addImport("extendedEncodeURIComponent", "__extendedEncodeURIComponent",
333-
"@aws-sdk/smithy-client");
334-
writer.openBlock("if (input.$L !== undefined) {", "}", memberName, () -> {
335-
Shape target = model.expectShape(binding.getMember().getTarget());
336-
String queryValue = getInputValue(context, binding.getLocation(), "input." + memberName,
337-
binding.getMember(), target);
338-
writer.write("query[$S] = $L;", binding.getLocationName(), queryValue);
339-
});
340-
}
319+
if (!queryLiterals.isEmpty() || !queryBindings.isEmpty()) {
320+
writer.openBlock("const query: any = {", "};", () -> {
321+
if (!queryLiterals.isEmpty()) {
322+
// Write any query literals present in the uri.
323+
queryLiterals.forEach((k, v) -> writer.write("$S: $S,", k, v));
324+
}
325+
// Handle any additional query bindings.
326+
if (!queryBindings.isEmpty()) {
327+
Model model = context.getModel();
328+
for (HttpBinding binding : queryBindings) {
329+
String memberName = symbolProvider.toMemberName(binding.getMember());
330+
writer.addImport("extendedEncodeURIComponent", "__extendedEncodeURIComponent",
331+
"@aws-sdk/smithy-client");
332+
Shape target = model.expectShape(binding.getMember().getTarget());
333+
String queryValue = getInputValue(context, binding.getLocation(), "input." + memberName,
334+
binding.getMember(), target);
335+
writer.write("...(input.$L !== undefined && { $S: $L }),", memberName,
336+
binding.getLocationName(), queryValue);
337+
}
338+
}
339+
});
341340
}
342341

343342
// Any binding or literal means we generated a query bag.

0 commit comments

Comments
 (0)