Skip to content

Commit 7d52be1

Browse files
authored
[11.14] Update MergeRequests::all to use millisecond precision (#787)
* MergeRequests::all: send datetimes with microsecond precision * Fix format - 2023-01-24T18:05:25.801Z works - 2023-01-24T18:05:25.801+00:00 does not work * Ensure UTC timezone is used * Adjust test * Fix typo * Fix for old PHP, improve test * Fix cs * Use some milliseconds in test
1 parent dd5eecc commit 7d52be1

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

src/Api/MergeRequests.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,9 @@ public function all($project_id = null, array $parameters = [])
7474
{
7575
$resolver = $this->createOptionsResolver();
7676
$datetimeNormalizer = function (Options $resolver, \DateTimeInterface $value): string {
77-
return $value->format('c');
77+
$utc = (new \DateTimeImmutable($value->format(\DateTimeImmutable::RFC3339_EXTENDED)))->setTimezone(new \DateTimeZone('UTC'));
78+
79+
return $utc->format('Y-m-d\TH:i:s.v\Z');
7880
};
7981
$resolver->setDefined('iids')
8082
->setAllowedTypes('iids', 'array')

tests/Api/MergeRequestsTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,11 +107,11 @@ public function shouldGetAllWithDateTimeParams(): void
107107
$expectedArray = $this->getMultipleMergeRequestsData();
108108

109109
$createdAfter = new \DateTime('2018-01-01 00:00:00');
110-
$createdBefore = new \DateTime('2018-01-31 00:00:00');
110+
$createdBefore = new \DateTime('2018-01-31 12:00:00.123+03:00');
111111

112112
$expectedWithArray = [
113-
'created_after' => $createdAfter->format(\DATE_ATOM),
114-
'created_before' => $createdBefore->format(\DATE_ATOM),
113+
'created_after' => '2018-01-01T00:00:00.000Z',
114+
'created_before' => '2018-01-31T09:00:00.123Z',
115115
];
116116

117117
$api = $this->getApiMock();

0 commit comments

Comments
 (0)