override fun render()

in codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/middleware/GlacierAccountIdMiddleware.kt [23:40]


    override fun render(writer: SwiftWriter, op: OperationShape, operationStackName: String) {
        val outputShapeName = MiddlewareShapeUtils.outputSymbol(symbolProvider, model, op).name
        val outputErrorShapeName = MiddlewareShapeUtils.outputErrorSymbolName(op)
        val accountId = model.expectShape<StructureShape>(op.input.get()).members().first { it.memberName.lowercase() == "accountid" }
        writer.openBlock(
            "$operationStackName.${middlewareStep.stringValue()}.intercept(position: ${position.stringValue()}, id: \"${name}\") { (context, input, next) -> \$N<\$N<$outputShapeName>, \$N<$outputErrorShapeName>> in", "}",
            SwiftTypes.Result,
            ClientRuntimeTypes.Middleware.OperationOutput,
            ClientRuntimeTypes.Core.SdkError
        ) {
            writer.openBlock("guard let accountId = input.${accountId.memberName}, !accountId.isEmpty else {", "}") {
                writer.write("var copiedInput = input")
                writer.write("copiedInput.${accountId.memberName} = \"-\"")
                writer.write("return next.handle(context: context, input: copiedInput)")
            }
            writer.write("return next.handle(context: context, input: input)")
        }
    }