in smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/integration/httpResponse/HttpResponseBindingErrorInitGenerator.kt [46:88]
override fun render() {
val responseBindings = httpBindingResolver.responseBindings(shape)
val headerBindings = responseBindings
.filter { it.location == HttpBinding.Location.HEADER }
.sortedBy { it.memberName }
val rootNamespace = ctx.settings.moduleName
val errorShapeName = ctx.symbolProvider.toSymbol(shape).name
val httpBindingSymbol = Symbol.builder()
.definitionFile("./$rootNamespace/models/$errorShapeName+Init.swift")
.name(errorShapeName)
.build()
ctx.delegator.useShapeWriter(httpBindingSymbol) { writer ->
writer.addImport(SwiftDependency.CLIENT_RUNTIME.target)
writer.openBlock("extension \$L {", "}", errorShapeName) {
writer.declareSection(HttpResponseBindingErrorInit) {
writer.write(
"public init (httpResponse: \$N, decoder: \$D, message: \$D, requestID: \$D) throws {",
ClientRuntimeTypes.Http.HttpResponse,
ClientRuntimeTypes.Serde.ResponseDecoder,
SwiftTypes.String,
SwiftTypes.String
)
}
writer.indent()
HttpResponseHeaders(ctx, headerBindings, defaultTimestampFormat, writer).render()
HttpResponsePrefixHeaders(ctx, responseBindings, writer).render()
httpResponseTraitPayload(ctx, responseBindings, errorShapeName, writer)
HttpResponseTraitQueryParams(ctx, responseBindings, writer).render()
HttpResponseTraitResponseCode(ctx, responseBindings, writer).render()
writer.write("self._headers = httpResponse.headers")
writer.write("self._statusCode = httpResponse.statusCode")
writer.write("self._requestID = requestID")
writer.write("self._message = message")
writer.declareSection(HttpResponseBindingErrorInitMemberAssignment)
writer.dedent()
writer.write("}")
}
writer.write("")
}
}