Skip to content

Commit 4beb93b

Browse files
authored
fix(clients): fix restXml protocol test for timestampFormat targets (#4364)
1 parent cdef3e5 commit 4beb93b

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

clients/client-s3/src/protocols/Aws_restXml.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8579,7 +8579,7 @@ const serializeAws_restXmlLambdaFunctionConfigurationList = (
85798579
const serializeAws_restXmlLifecycleExpiration = (input: LifecycleExpiration, context: __SerdeContext): any => {
85808580
const bodyNode = new __XmlNode("LifecycleExpiration");
85818581
if (input.Date != null) {
8582-
const node = __XmlNode.of("Date", input.Date.toISOString().split(".")[0] + "Z").withName("Date");
8582+
const node = __XmlNode.of("Date", (input.Date.toISOString().split(".")[0] + "Z").toString()).withName("Date");
85838583
bodyNode.addChildNode(node);
85848584
}
85858585
if (input.Days != null) {
@@ -8980,7 +8980,7 @@ const serializeAws_restXmlObjectLockRetention = (input: ObjectLockRetention, con
89808980
}
89818981
if (input.RetainUntilDate != null) {
89828982
const node = __XmlNode
8983-
.of("Date", input.RetainUntilDate.toISOString().split(".")[0] + "Z")
8983+
.of("Date", (input.RetainUntilDate.toISOString().split(".")[0] + "Z").toString())
89848984
.withName("RetainUntilDate");
89858985
bodyNode.addChildNode(node);
89868986
}
@@ -9729,7 +9729,7 @@ const serializeAws_restXmlTopicConfigurationList = (input: TopicConfiguration[],
97299729
const serializeAws_restXmlTransition = (input: Transition, context: __SerdeContext): any => {
97309730
const bodyNode = new __XmlNode("Transition");
97319731
if (input.Date != null) {
9732-
const node = __XmlNode.of("Date", input.Date.toISOString().split(".")[0] + "Z").withName("Date");
9732+
const node = __XmlNode.of("Date", (input.Date.toISOString().split(".")[0] + "Z").toString()).withName("Date");
97339733
bodyNode.addChildNode(node);
97349734
}
97359735
if (input.Days != null) {

codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/XmlShapeSerVisitor.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package software.amazon.smithy.aws.typescript.codegen;
1717

1818
import java.util.Map;
19+
import java.util.Optional;
1920
import java.util.function.Supplier;
2021
import software.amazon.smithy.codegen.core.CodegenException;
2122
import software.amazon.smithy.model.Model;
@@ -236,17 +237,20 @@ void serializeNamedMember(
236237
// Grab the target shape so we can use a member serializer on it.
237238
Shape target = context.getModel().expectShape(memberShape.getTarget());
238239
XmlMemberSerVisitor inputVisitor = getMemberVisitor(inputLocation.get());
239-
240240
// Collected members must be handled with flattening and renaming.
241241
if (serializationReturnsArray(target)) {
242242
serializeNamedMemberFromArray(context, locationName, memberShape, target, inputVisitor);
243243
} else {
244244
// Handle @timestampFormat on members not just the targeted shape.
245245
String valueProvider;
246-
if (memberShape.hasTrait(TimestampFormatTrait.class)) {
246+
if (memberShape.hasTrait(TimestampFormatTrait.class) || target.hasTrait(TimestampFormatTrait.class)) {
247+
Optional<TimestampFormatTrait> timestampFormat = memberShape.getTrait(TimestampFormatTrait.class);
248+
if (timestampFormat.isEmpty()) {
249+
timestampFormat = target.getTrait(TimestampFormatTrait.class);
250+
}
247251
valueProvider = inputVisitor.getAsXmlText(target,
248252
AwsProtocolUtils.getInputTimestampValueProvider(context, memberShape,
249-
TIMESTAMP_FORMAT, inputLocation.get()) + ".toString()");
253+
timestampFormat.get().getFormat(), inputLocation.get()) + ".toString()");
250254
} else {
251255
valueProvider = target.accept(inputVisitor);
252256
}

0 commit comments

Comments
 (0)