Skip to content

Commit

Permalink
Fix API breakage of FlexibleChecksumsRequestInterceptor
Browse files Browse the repository at this point in the history
  • Loading branch information
lauzadis committed Feb 14, 2024
1 parent 73a39db commit b308381
Showing 1 changed file with 2 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,15 @@ class FlexibleChecksumsRequest : KotlinIntegration {

override fun render(ctx: ProtocolGenerator.GenerationContext, op: OperationShape, writer: KotlinWriter) {
val interceptorSymbol = RuntimeTypes.HttpClient.Interceptors.FlexibleChecksumsRequestInterceptor
val inputSymbol = ctx.symbolProvider.toSymbol(ctx.model.expectShape(op.inputShape))

val httpChecksumTrait = op.getTrait<HttpChecksumTrait>()!!

val requestAlgorithmMember = ctx.model.expectShape<StructureShape>(op.input.get())
.members()
.first { it.memberName == httpChecksumTrait.requestAlgorithmMember.get() }

writer.write("op.interceptors.add(#T())", interceptorSymbol)
writer.write("op.interceptors.add(#T<#T>())", interceptorSymbol, inputSymbol)
writer.withBlock("input.${requestAlgorithmMember.defaultName()}?.let {", "}") {
writer.write("op.context[#T.ChecksumAlgorithm] = it.value", RuntimeTypes.HttpClient.Operation.HttpOperationContext)
}
Expand Down

0 comments on commit b308381

Please sign in to comment.