Skip to content

Commit f4ac78c

Browse files
authored
fix: treat HttpChecksumRequiredTrait and HttpChecksumTrait same way (#500)
this is temporary fix until we implement flexible checksum support backlog: awslabs/aws-sdk-swift#653
1 parent b442ce4 commit f4ac78c

File tree

1 file changed

+7
-1
lines changed
  • smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/integration/middlewares

1 file changed

+7
-1
lines changed

smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/integration/middlewares/ContentMD5Middleware.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package software.amazon.smithy.swift.codegen.integration.middlewares
22

3+
import software.amazon.smithy.aws.traits.HttpChecksumTrait
34
import software.amazon.smithy.codegen.core.SymbolProvider
45
import software.amazon.smithy.model.Model
56
import software.amazon.smithy.model.shapes.OperationShape
@@ -10,6 +11,7 @@ import software.amazon.smithy.swift.codegen.integration.middlewares.handlers.Mid
1011
import software.amazon.smithy.swift.codegen.middleware.MiddlewarePosition
1112
import software.amazon.smithy.swift.codegen.middleware.MiddlewareRenderable
1213
import software.amazon.smithy.swift.codegen.middleware.MiddlewareStep
14+
import software.amazon.smithy.swift.codegen.model.getTrait
1315
import software.amazon.smithy.swift.codegen.model.hasTrait
1416

1517
class ContentMD5Middleware(
@@ -23,9 +25,13 @@ class ContentMD5Middleware(
2325
override val position = MiddlewarePosition.BEFORE
2426

2527
override fun render(writer: SwiftWriter, op: OperationShape, operationStackName: String) {
26-
if (op.hasTrait<HttpChecksumRequiredTrait>()) {
28+
if (op.isChecksumRequired()) {
2729
val outputShapeName = MiddlewareShapeUtils.outputSymbol(symbolProvider, model, op).name
2830
writer.write("$operationStackName.${middlewareStep.stringValue()}.intercept(position: ${position.stringValue()}, middleware: \$N<$outputShapeName>())", ClientRuntimeTypes.Middleware.ContentMD5Middleware)
2931
}
3032
}
3133
}
34+
35+
// TODO https://github.com/awslabs/aws-sdk-swift/issues/653
36+
private fun OperationShape.isChecksumRequired(): Boolean =
37+
getTrait<HttpChecksumTrait>()?.isRequestChecksumRequired == true || hasTrait<HttpChecksumRequiredTrait>()

0 commit comments

Comments
 (0)