Skip to content

Commit 61b376c

Browse files
authored
Improve the timestamp conversion for the rest-json protocol (#1468)
This will use the same generated code than for the json rpc protocol
1 parent 77ebc34 commit 61b376c

File tree

9 files changed

+31
-29
lines changed

9 files changed

+31
-29
lines changed

src/CodeGenerator/src/Generator/ResponseParser/RestJsonParser.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,8 +121,10 @@ protected function parseResponseTimestamp(Shape $shape, string $input, bool $req
121121
throw new \RuntimeException(sprintf('Timestamp format %s is not yet implemented', $format));
122122
}
123123

124-
if (!$required) {
125-
$body = 'isset(INPUT) ? ' . $body . ' : null';
124+
if ($required) {
125+
$body = '/** @var \DateTimeImmutable $d */ $d = ' . $body;
126+
} else {
127+
$body = 'isset(INPUT) && ($d = ' . $body . ') ? $d : null';
126128
}
127129

128130
return strtr($body, ['INPUT' => $input]);

src/Service/Iot/src/Result/ListThingTypesResponse.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,8 @@ private function populateResultThingTypeMetadata(array $json): ThingTypeMetadata
140140
{
141141
return new ThingTypeMetadata([
142142
'deprecated' => isset($json['deprecated']) ? filter_var($json['deprecated'], \FILTER_VALIDATE_BOOLEAN) : null,
143-
'deprecationDate' => isset($json['deprecationDate']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['deprecationDate'])) : null,
144-
'creationDate' => isset($json['creationDate']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['creationDate'])) : null,
143+
'deprecationDate' => isset($json['deprecationDate']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['deprecationDate']))) ? $d : null,
144+
'creationDate' => isset($json['creationDate']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['creationDate']))) ? $d : null,
145145
]);
146146
}
147147

src/Service/MediaConvert/src/Result/CreateJobResponse.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1200,7 +1200,7 @@ private function populateResultJob(array $json): Job
12001200
'Arn' => isset($json['arn']) ? (string) $json['arn'] : null,
12011201
'BillingTagsSource' => isset($json['billingTagsSource']) ? (string) $json['billingTagsSource'] : null,
12021202
'ClientRequestToken' => isset($json['clientRequestToken']) ? (string) $json['clientRequestToken'] : null,
1203-
'CreatedAt' => isset($json['createdAt']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['createdAt'])) : null,
1203+
'CreatedAt' => isset($json['createdAt']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['createdAt']))) ? $d : null,
12041204
'CurrentPhase' => isset($json['currentPhase']) ? (string) $json['currentPhase'] : null,
12051205
'ErrorCode' => isset($json['errorCode']) ? (int) $json['errorCode'] : null,
12061206
'ErrorMessage' => isset($json['errorMessage']) ? (string) $json['errorMessage'] : null,
@@ -1715,7 +1715,7 @@ private function populateResultQueueTransition(array $json): QueueTransition
17151715
return new QueueTransition([
17161716
'DestinationQueue' => isset($json['destinationQueue']) ? (string) $json['destinationQueue'] : null,
17171717
'SourceQueue' => isset($json['sourceQueue']) ? (string) $json['sourceQueue'] : null,
1718-
'Timestamp' => isset($json['timestamp']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['timestamp'])) : null,
1718+
'Timestamp' => isset($json['timestamp']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['timestamp']))) ? $d : null,
17191719
]);
17201720
}
17211721

@@ -1844,9 +1844,9 @@ private function populateResultTimedMetadataInsertion(array $json): TimedMetadat
18441844
private function populateResultTiming(array $json): Timing
18451845
{
18461846
return new Timing([
1847-
'FinishTime' => isset($json['finishTime']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['finishTime'])) : null,
1848-
'StartTime' => isset($json['startTime']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['startTime'])) : null,
1849-
'SubmitTime' => isset($json['submitTime']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['submitTime'])) : null,
1847+
'FinishTime' => isset($json['finishTime']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['finishTime']))) ? $d : null,
1848+
'StartTime' => isset($json['startTime']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['startTime']))) ? $d : null,
1849+
'SubmitTime' => isset($json['submitTime']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['submitTime']))) ? $d : null,
18501850
]);
18511851
}
18521852

src/Service/MediaConvert/src/Result/GetJobResponse.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1200,7 +1200,7 @@ private function populateResultJob(array $json): Job
12001200
'Arn' => isset($json['arn']) ? (string) $json['arn'] : null,
12011201
'BillingTagsSource' => isset($json['billingTagsSource']) ? (string) $json['billingTagsSource'] : null,
12021202
'ClientRequestToken' => isset($json['clientRequestToken']) ? (string) $json['clientRequestToken'] : null,
1203-
'CreatedAt' => isset($json['createdAt']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['createdAt'])) : null,
1203+
'CreatedAt' => isset($json['createdAt']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['createdAt']))) ? $d : null,
12041204
'CurrentPhase' => isset($json['currentPhase']) ? (string) $json['currentPhase'] : null,
12051205
'ErrorCode' => isset($json['errorCode']) ? (int) $json['errorCode'] : null,
12061206
'ErrorMessage' => isset($json['errorMessage']) ? (string) $json['errorMessage'] : null,
@@ -1715,7 +1715,7 @@ private function populateResultQueueTransition(array $json): QueueTransition
17151715
return new QueueTransition([
17161716
'DestinationQueue' => isset($json['destinationQueue']) ? (string) $json['destinationQueue'] : null,
17171717
'SourceQueue' => isset($json['sourceQueue']) ? (string) $json['sourceQueue'] : null,
1718-
'Timestamp' => isset($json['timestamp']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['timestamp'])) : null,
1718+
'Timestamp' => isset($json['timestamp']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['timestamp']))) ? $d : null,
17191719
]);
17201720
}
17211721

@@ -1844,9 +1844,9 @@ private function populateResultTimedMetadataInsertion(array $json): TimedMetadat
18441844
private function populateResultTiming(array $json): Timing
18451845
{
18461846
return new Timing([
1847-
'FinishTime' => isset($json['finishTime']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['finishTime'])) : null,
1848-
'StartTime' => isset($json['startTime']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['startTime'])) : null,
1849-
'SubmitTime' => isset($json['submitTime']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['submitTime'])) : null,
1847+
'FinishTime' => isset($json['finishTime']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['finishTime']))) ? $d : null,
1848+
'StartTime' => isset($json['startTime']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['startTime']))) ? $d : null,
1849+
'SubmitTime' => isset($json['submitTime']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['submitTime']))) ? $d : null,
18501850
]);
18511851
}
18521852

src/Service/MediaConvert/src/Result/ListJobsResponse.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1265,7 +1265,7 @@ private function populateResultJob(array $json): Job
12651265
'Arn' => isset($json['arn']) ? (string) $json['arn'] : null,
12661266
'BillingTagsSource' => isset($json['billingTagsSource']) ? (string) $json['billingTagsSource'] : null,
12671267
'ClientRequestToken' => isset($json['clientRequestToken']) ? (string) $json['clientRequestToken'] : null,
1268-
'CreatedAt' => isset($json['createdAt']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['createdAt'])) : null,
1268+
'CreatedAt' => isset($json['createdAt']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['createdAt']))) ? $d : null,
12691269
'CurrentPhase' => isset($json['currentPhase']) ? (string) $json['currentPhase'] : null,
12701270
'ErrorCode' => isset($json['errorCode']) ? (int) $json['errorCode'] : null,
12711271
'ErrorMessage' => isset($json['errorMessage']) ? (string) $json['errorMessage'] : null,
@@ -1780,7 +1780,7 @@ private function populateResultQueueTransition(array $json): QueueTransition
17801780
return new QueueTransition([
17811781
'DestinationQueue' => isset($json['destinationQueue']) ? (string) $json['destinationQueue'] : null,
17821782
'SourceQueue' => isset($json['sourceQueue']) ? (string) $json['sourceQueue'] : null,
1783-
'Timestamp' => isset($json['timestamp']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['timestamp'])) : null,
1783+
'Timestamp' => isset($json['timestamp']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['timestamp']))) ? $d : null,
17841784
]);
17851785
}
17861786

@@ -1909,9 +1909,9 @@ private function populateResultTimedMetadataInsertion(array $json): TimedMetadat
19091909
private function populateResultTiming(array $json): Timing
19101910
{
19111911
return new Timing([
1912-
'FinishTime' => isset($json['finishTime']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['finishTime'])) : null,
1913-
'StartTime' => isset($json['startTime']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['startTime'])) : null,
1914-
'SubmitTime' => isset($json['submitTime']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['submitTime'])) : null,
1912+
'FinishTime' => isset($json['finishTime']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['finishTime']))) ? $d : null,
1913+
'StartTime' => isset($json['startTime']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['startTime']))) ? $d : null,
1914+
'SubmitTime' => isset($json['submitTime']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['submitTime']))) ? $d : null,
19151915
]);
19161916
}
19171917

src/Service/Scheduler/src/Result/GetScheduleGroupOutput.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ protected function populateResult(Response $response): void
7676
$data = $response->toArray();
7777

7878
$this->arn = isset($data['Arn']) ? (string) $data['Arn'] : null;
79-
$this->creationDate = isset($data['CreationDate']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $data['CreationDate'])) : null;
80-
$this->lastModificationDate = isset($data['LastModificationDate']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $data['LastModificationDate'])) : null;
79+
$this->creationDate = isset($data['CreationDate']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $data['CreationDate']))) ? $d : null;
80+
$this->lastModificationDate = isset($data['LastModificationDate']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $data['LastModificationDate']))) ? $d : null;
8181
$this->name = isset($data['Name']) ? (string) $data['Name'] : null;
8282
$this->state = isset($data['State']) ? (string) $data['State'] : null;
8383
}

src/Service/Scheduler/src/Result/GetScheduleOutput.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -224,17 +224,17 @@ protected function populateResult(Response $response): void
224224
$data = $response->toArray();
225225

226226
$this->arn = isset($data['Arn']) ? (string) $data['Arn'] : null;
227-
$this->creationDate = isset($data['CreationDate']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $data['CreationDate'])) : null;
227+
$this->creationDate = isset($data['CreationDate']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $data['CreationDate']))) ? $d : null;
228228
$this->description = isset($data['Description']) ? (string) $data['Description'] : null;
229-
$this->endDate = isset($data['EndDate']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $data['EndDate'])) : null;
229+
$this->endDate = isset($data['EndDate']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $data['EndDate']))) ? $d : null;
230230
$this->flexibleTimeWindow = empty($data['FlexibleTimeWindow']) ? null : $this->populateResultFlexibleTimeWindow($data['FlexibleTimeWindow']);
231231
$this->groupName = isset($data['GroupName']) ? (string) $data['GroupName'] : null;
232232
$this->kmsKeyArn = isset($data['KmsKeyArn']) ? (string) $data['KmsKeyArn'] : null;
233-
$this->lastModificationDate = isset($data['LastModificationDate']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $data['LastModificationDate'])) : null;
233+
$this->lastModificationDate = isset($data['LastModificationDate']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $data['LastModificationDate']))) ? $d : null;
234234
$this->name = isset($data['Name']) ? (string) $data['Name'] : null;
235235
$this->scheduleExpression = isset($data['ScheduleExpression']) ? (string) $data['ScheduleExpression'] : null;
236236
$this->scheduleExpressionTimezone = isset($data['ScheduleExpressionTimezone']) ? (string) $data['ScheduleExpressionTimezone'] : null;
237-
$this->startDate = isset($data['StartDate']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $data['StartDate'])) : null;
237+
$this->startDate = isset($data['StartDate']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $data['StartDate']))) ? $d : null;
238238
$this->state = isset($data['State']) ? (string) $data['State'] : null;
239239
$this->target = empty($data['Target']) ? null : $this->populateResultTarget($data['Target']);
240240
}

src/Service/Scheduler/src/Result/ListScheduleGroupsOutput.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,8 @@ private function populateResultScheduleGroupSummary(array $json): ScheduleGroupS
110110
{
111111
return new ScheduleGroupSummary([
112112
'Arn' => isset($json['Arn']) ? (string) $json['Arn'] : null,
113-
'CreationDate' => isset($json['CreationDate']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['CreationDate'])) : null,
114-
'LastModificationDate' => isset($json['LastModificationDate']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['LastModificationDate'])) : null,
113+
'CreationDate' => isset($json['CreationDate']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['CreationDate']))) ? $d : null,
114+
'LastModificationDate' => isset($json['LastModificationDate']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['LastModificationDate']))) ? $d : null,
115115
'Name' => isset($json['Name']) ? (string) $json['Name'] : null,
116116
'State' => isset($json['State']) ? (string) $json['State'] : null,
117117
]);

src/Service/Scheduler/src/Result/ListSchedulesOutput.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,9 @@ private function populateResultScheduleSummary(array $json): ScheduleSummary
111111
{
112112
return new ScheduleSummary([
113113
'Arn' => isset($json['Arn']) ? (string) $json['Arn'] : null,
114-
'CreationDate' => isset($json['CreationDate']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['CreationDate'])) : null,
114+
'CreationDate' => isset($json['CreationDate']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['CreationDate']))) ? $d : null,
115115
'GroupName' => isset($json['GroupName']) ? (string) $json['GroupName'] : null,
116-
'LastModificationDate' => isset($json['LastModificationDate']) ? \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['LastModificationDate'])) : null,
116+
'LastModificationDate' => isset($json['LastModificationDate']) && ($d = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', $json['LastModificationDate']))) ? $d : null,
117117
'Name' => isset($json['Name']) ? (string) $json['Name'] : null,
118118
'State' => isset($json['State']) ? (string) $json['State'] : null,
119119
'Target' => empty($json['Target']) ? null : $this->populateResultTargetSummary($json['Target']),

0 commit comments

Comments
 (0)