in callouts/java/service-callout/src/main/java/service/ServiceCalloutTools.java [149:186]
public static void buildImmediateResponse(
ImmediateResponse.Builder builder,
HttpStatus status,
ImmutableMap<String, String> headersToAdd,
List<String> headersToRemove,
String body) {
// Set the HTTP status
builder.setStatus(status);
// Obtain HeaderMutation.Builder from the parent ImmediateResponse.Builder
HeaderMutation.Builder headerMutationBuilder = builder.getHeadersBuilder();
// Handle adding headers
if (headersToAdd != null) {
for (Map.Entry<String, String> entry : headersToAdd.entrySet()) {
HeaderValueOption headerOption = HeaderValueOption.newBuilder()
.setHeader(HeaderValue.newBuilder()
.setKey(entry.getKey())
.setRawValue(ByteString.copyFromUtf8(entry.getValue()))
.build()
)
.build();
headerMutationBuilder.addSetHeaders(headerOption);
}
}
// Handle removing headers
if (headersToRemove != null) {
headerMutationBuilder.addAllRemoveHeaders(headersToRemove);
}
// Set the body if it is not null
if (body != null) {
builder.setBody(body);
}
}