Skip to content

Commit bf0219c

Browse files
committed
ISSUE-345: fix createdAt/updatedAt
1 parent 0a65716 commit bf0219c

17 files changed

+51
-35
lines changed

config/services/managers.yml

+4
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,7 @@ services:
3131
PhpList\RestBundle\Service\Manager\TemplateImageManager:
3232
autowire: true
3333
autoconfigure: true
34+
35+
PhpList\RestBundle\Service\Manager\AdministratorManager:
36+
autowire: true
37+
autoconfigure: true

config/services/normalizers.yml

+4
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,7 @@ services:
3838
PhpList\RestBundle\Serializer\TemplateNormalizer:
3939
tags: [ 'serializer.normalizer' ]
4040
autowire: true
41+
42+
PhpList\RestBundle\Serializer\AdministratorNormalizer:
43+
tags: [ 'serializer.normalizer' ]
44+
autowire: true

src/Serializer/AdministratorNormalizer.php

+10-2
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,17 @@
44

55
namespace PhpList\RestBundle\Serializer;
66

7+
use DateTimeInterface;
78
use InvalidArgumentException;
89
use PhpList\Core\Domain\Model\Identity\Administrator;
910
use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
1011

1112
class AdministratorNormalizer implements NormalizerInterface
1213
{
14+
/**
15+
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
16+
* @throws InvalidArgumentException
17+
*/
1318
public function normalize($object, string $format = null, array $context = []): array
1419
{
1520
if (!$object instanceof Administrator) {
@@ -20,11 +25,14 @@ public function normalize($object, string $format = null, array $context = []):
2025
'id' => $object->getId(),
2126
'login_name' => $object->getLoginName(),
2227
'email' => $object->getEmail(),
23-
'super_admin' => $object->isSuperAdmin(),
24-
'created_at' => $object->getCreatedAt()?->format(\DateTimeInterface::ATOM),
28+
'super_admin' => $object->isSuperUser(),
29+
'created_at' => $object->getCreatedAt()?->format(DateTimeInterface::ATOM),
2530
];
2631
}
2732

33+
/**
34+
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
35+
*/
2836
public function supportsNormalization($data, string $format = null): bool
2937
{
3038
return $data instanceof Administrator;

src/Serializer/SubscriberListNormalizer.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public function normalize($object, string $format = null, array $context = []):
2121
return [
2222
'id' => $object->getId(),
2323
'name' => $object->getName(),
24-
'creation_date' => $object->getCreationDate()->format('Y-m-d\TH:i:sP'),
24+
'creation_date' => $object->getCreatedAt()->format('Y-m-d\TH:i:sP'),
2525
'description' => $object->getDescription(),
2626
'list_position' => $object->getListPosition(),
2727
'subject_prefix' => $object->getSubjectPrefix(),

src/Serializer/SubscriberNormalizer.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public function normalize($object, string $format = null, array $context = []):
2222
return [
2323
'id' => $object->getId(),
2424
'email' => $object->getEmail(),
25-
'creation_date' => $object->getCreationDate()->format('Y-m-d\TH:i:sP'),
25+
'created_at' => $object->getCreatedAt()->format('Y-m-d\TH:i:sP'),
2626
'confirmed' => $object->isConfirmed(),
2727
'blacklisted' => $object->isBlacklisted(),
2828
'bounce_count' => $object->getBounceCount(),
@@ -34,9 +34,9 @@ public function normalize($object, string $format = null, array $context = []):
3434
'id' => $subscription->getSubscriberList()->getId(),
3535
'name' => $subscription->getSubscriberList()->getName(),
3636
'description' => $subscription->getSubscriberList()->getDescription(),
37-
'creation_date' => $subscription->getSubscriberList()->getCreationDate()->format('Y-m-d\TH:i:sP'),
37+
'created_at' => $subscription->getSubscriberList()->getCreatedAt()->format('Y-m-d\TH:i:sP'),
3838
'public' => $subscription->getSubscriberList()->isPublic(),
39-
'subscription_date' => $subscription->getCreationDate()->format('Y-m-d\TH:i:sP'),
39+
'subscription_date' => $subscription->getCreatedAt()->format('Y-m-d\TH:i:sP'),
4040
];
4141
}, $object->getSubscriptions()->toArray()),
4242
];

src/Serializer/SubscriptionNormalizer.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public function normalize($object, string $format = null, array $context = []):
3232
return [
3333
'subscriber' => $this->subscriberNormalizer->normalize($object->getSubscriber()),
3434
'subscriber_list' => $this->subscriberListNormalizer->normalize($object->getSubscriberList()),
35-
'subscription_date' => $object->getCreationDate()->format('Y-m-d\TH:i:sP'),
35+
'subscription_date' => $object->getCreatedAt()->format('Y-m-d\TH:i:sP'),
3636
];
3737
}
3838

src/Service/Manager/AdministratorManager.php

+6-6
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,17 @@
88
use PhpList\Core\Domain\Model\Identity\Administrator;
99
use PhpList\RestBundle\Entity\Request\CreateAdministratorRequest;
1010
use PhpList\RestBundle\Entity\Request\UpdateAdministratorRequest;
11-
use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
11+
use PhpList\Core\Security\HashGenerator;
1212

1313
class AdministratorManager
1414
{
1515
private EntityManagerInterface $entityManager;
16-
private UserPasswordHasherInterface $passwordHasher;
16+
private HashGenerator $hashGenerator;
1717

18-
public function __construct(EntityManagerInterface $entityManager, UserPasswordHasherInterface $passwordHasher)
18+
public function __construct(EntityManagerInterface $entityManager, HashGenerator $hashGenerator)
1919
{
2020
$this->entityManager = $entityManager;
21-
$this->passwordHasher = $passwordHasher;
21+
$this->hashGenerator = $hashGenerator;
2222
}
2323

2424
public function createAdministrator(CreateAdministratorRequest $dto): Administrator
@@ -27,7 +27,7 @@ public function createAdministrator(CreateAdministratorRequest $dto): Administra
2727
$administrator->setLoginName($dto->loginName);
2828
$administrator->setEmail($dto->email);
2929
$administrator->setSuperUser($dto->superUser);
30-
$hashedPassword = $this->passwordHasher->hashPassword($administrator, $dto->password);
30+
$hashedPassword = $this->hashGenerator->createPasswordHash($dto->password);
3131
$administrator->setPasswordHash($hashedPassword);
3232

3333
$this->entityManager->persist($administrator);
@@ -48,7 +48,7 @@ public function updateAdministrator(Administrator $administrator, UpdateAdminist
4848
$administrator->setSuperUser($dto->superAdmin);
4949
}
5050
if ($dto->password !== null) {
51-
$hashedPassword = $this->passwordHasher->hashPassword($administrator, $dto->password);
51+
$hashedPassword = $this->hashGenerator->createPasswordHash($dto->password);
5252
$administrator->setPasswordHash($hashedPassword);
5353
}
5454

tests/Integration/Controller/Fixtures/Identity/AdministratorFixture.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,14 @@ public function load(ObjectManager $manager): void
3939
$admin = new Administrator();
4040
$this->setSubjectId($admin, (int)$row['id']);
4141
$admin->setLoginName($row['loginname']);
42-
$admin->setEmailAddress($row['email']);
42+
$admin->setEmail($row['email']);
4343
$admin->setPasswordHash($row['password']);
4444
$admin->setDisabled((bool) $row['disabled']);
4545
$admin->setSuperUser((bool) $row['superuser']);
4646

4747
$manager->persist($admin);
4848

49-
$this->setSubjectProperty($admin, 'creationDate', new DateTime($row['created']));
49+
$this->setSubjectProperty($admin, 'createdAt', new DateTime($row['created']));
5050
$this->setSubjectProperty($admin, 'passwordChangeDate', new DateTime($row['passwordchanged']));
5151
} while (true);
5252

tests/Integration/Controller/Fixtures/Identity/AdministratorTokenFixture.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public function load(ObjectManager $manager): void
5353
$manager->persist($adminToken);
5454

5555
$this->setSubjectProperty($adminToken, 'expiry', new DateTime($row['expires']));
56-
$this->setSubjectProperty($adminToken, 'creationDate', (bool) $row['entered']);
56+
$this->setSubjectProperty($adminToken, 'createdAt', (bool) $row['entered']);
5757
} while (true);
5858

5959
fclose($handle);

tests/Integration/Controller/Fixtures/Messaging/MessageFixture.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ public function load(ObjectManager $manager): void
101101
$this->setSubjectProperty($message, 'uuid', $row['uuid']);
102102

103103
$manager->persist($message);
104-
$this->setSubjectProperty($message, 'modificationDate', new DateTime($row['modified']));
104+
$this->setSubjectProperty($message, 'updatedAt', new DateTime($row['modified']));
105105
} while (true);
106106

107107
fclose($handle);

tests/Integration/Controller/Fixtures/Messaging/SubscriberListFixture.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ public function load(ObjectManager $manager): void
6060

6161
$manager->persist($subscriberList);
6262

63-
$this->setSubjectProperty($subscriberList, 'creationDate', new DateTime($row['entered']));
64-
$this->setSubjectProperty($subscriberList, 'modificationDate', new DateTime($row['modified']));
63+
$this->setSubjectProperty($subscriberList, 'createdAt', new DateTime($row['entered']));
64+
$this->setSubjectProperty($subscriberList, 'updatedAt', new DateTime($row['modified']));
6565
} while (true);
6666

6767
fclose($handle);

tests/Integration/Controller/Fixtures/Subscription/SubscriberFixture.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ public function load(ObjectManager $manager): void
5050
$manager->persist($subscriber);
5151
// avoid pre-persist
5252
$subscriber->setUniqueId($row['uniqid']);
53-
$this->setSubjectProperty($subscriber, 'creationDate', new DateTime($row['entered']));
54-
$this->setSubjectProperty($subscriber, 'modificationDate', new DateTime($row['modified']));
53+
$this->setSubjectProperty($subscriber, 'createdAt', new DateTime($row['entered']));
54+
$this->setSubjectProperty($subscriber, 'updatedAt', new DateTime($row['modified']));
5555
} while (true);
5656

5757
fclose($handle);

tests/Integration/Controller/Fixtures/Subscription/SubscriptionFixture.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ public function load(ObjectManager $manager): void
5151

5252
$manager->persist($subscription);
5353

54-
$this->setSubjectProperty($subscription, 'creationDate', new DateTime($row['entered']));
55-
$this->setSubjectProperty($subscription, 'modificationDate', new DateTime($row['modified']));
54+
$this->setSubjectProperty($subscription, 'createdAt', new DateTime($row['entered']));
55+
$this->setSubjectProperty($subscription, 'updatedAt', new DateTime($row['modified']));
5656
} while (true);
5757

5858
fclose($handle);

tests/Integration/Controller/ListControllerTest.php

+5-5
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ public function testGetListMembersWithCurrentSessionKeyForExistingListWithSubscr
240240
[
241241
'id' => 1,
242242
'email' => '[email protected]',
243-
'creation_date' => '2016-07-22T15:01:17+00:00',
243+
'created_at' => '2016-07-22T15:01:17+00:00',
244244
'confirmed' => true,
245245
'blacklisted' => true,
246246
'bounce_count' => 17,
@@ -252,15 +252,15 @@ public function testGetListMembersWithCurrentSessionKeyForExistingListWithSubscr
252252
'id' => 2,
253253
'name' => 'More news',
254254
'description' => '',
255-
'creation_date' => '2016-06-22T15:01:17+00:00',
255+
'created_at' => '2016-06-22T15:01:17+00:00',
256256
'public' => true,
257257
'subscription_date' => '2016-07-22T15:01:17+00:00',
258258
],
259259
],
260260
], [
261261
'id' => 2,
262262
'email' => '[email protected]',
263-
'creation_date' => '2016-07-22T15:01:17+00:00',
263+
'created_at' => '2016-07-22T15:01:17+00:00',
264264
'confirmed' => true,
265265
'blacklisted' => true,
266266
'bounce_count' => 17,
@@ -272,15 +272,15 @@ public function testGetListMembersWithCurrentSessionKeyForExistingListWithSubscr
272272
'id' => 2,
273273
'name' => 'More news',
274274
'description' => '',
275-
'creation_date' => '2016-06-22T15:01:17+00:00',
275+
'created_at' => '2016-06-22T15:01:17+00:00',
276276
'public' => true,
277277
'subscription_date' => '2016-08-22T15:01:17+00:00',
278278
],
279279
[
280280
'id' => 1,
281281
'name' => 'News',
282282
'description' => 'News (and some fun stuff)',
283-
'creation_date' => '2016-06-22T15:01:17+00:00',
283+
'created_at' => '2016-06-22T15:01:17+00:00',
284284
'public' => true,
285285
'subscription_date' => '2016-09-22T15:01:17+00:00',
286286
],

tests/Unit/Serializer/SubscriberListNormalizerTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public function testNormalize(): void
2525
$mock = $this->createMock(SubscriberList::class);
2626
$mock->method('getId')->willReturn(101);
2727
$mock->method('getName')->willReturn('Tech News');
28-
$mock->method('getCreationDate')->willReturn(new DateTime('2025-04-01T10:00:00+00:00'));
28+
$mock->method('getCreatedAt')->willReturn(new DateTime('2025-04-01T10:00:00+00:00'));
2929
$mock->method('getDescription')->willReturn('All tech updates');
3030
$mock->method('getListPosition')->willReturn(2);
3131
$mock->method('getSubjectPrefix')->willReturn('tech');

tests/Unit/Serializer/SubscriberNormalizerTest.php

+5-5
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,17 @@ public function testNormalize(): void
3030
$subscriberList->method('getId')->willReturn(1);
3131
$subscriberList->method('getName')->willReturn('News');
3232
$subscriberList->method('getDescription')->willReturn('Latest news');
33-
$subscriberList->method('getCreationDate')->willReturn(new DateTime('2025-01-01T00:00:00+00:00'));
33+
$subscriberList->method('getCreatedAt')->willReturn(new DateTime('2025-01-01T00:00:00+00:00'));
3434
$subscriberList->method('isPublic')->willReturn(true);
3535

3636
$subscription = $this->createMock(Subscription::class);
3737
$subscription->method('getSubscriberList')->willReturn($subscriberList);
38-
$subscription->method('getCreationDate')->willReturn(new DateTime('2025-01-10T00:00:00+00:00'));
38+
$subscription->method('getCreatedAt')->willReturn(new DateTime('2025-01-10T00:00:00+00:00'));
3939

4040
$subscriber = $this->createMock(Subscriber::class);
4141
$subscriber->method('getId')->willReturn(101);
4242
$subscriber->method('getEmail')->willReturn('[email protected]');
43-
$subscriber->method('getCreationDate')->willReturn(new DateTime('2024-12-31T12:00:00+00:00'));
43+
$subscriber->method('getCreatedAt')->willReturn(new DateTime('2024-12-31T12:00:00+00:00'));
4444
$subscriber->method('isConfirmed')->willReturn(true);
4545
$subscriber->method('isBlacklisted')->willReturn(false);
4646
$subscriber->method('getBounceCount')->willReturn(0);
@@ -54,7 +54,7 @@ public function testNormalize(): void
5454
$expected = [
5555
'id' => 101,
5656
'email' => '[email protected]',
57-
'creation_date' => '2024-12-31T12:00:00+00:00',
57+
'created_at' => '2024-12-31T12:00:00+00:00',
5858
'confirmed' => true,
5959
'blacklisted' => false,
6060
'bounce_count' => 0,
@@ -66,7 +66,7 @@ public function testNormalize(): void
6666
'id' => 1,
6767
'name' => 'News',
6868
'description' => 'Latest news',
69-
'creation_date' => '2025-01-01T00:00:00+00:00',
69+
'created_at' => '2025-01-01T00:00:00+00:00',
7070
'public' => true,
7171
'subscription_date' => '2025-01-10T00:00:00+00:00'
7272
]

tests/Unit/Serializer/SubscriptionNormalizerTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public function testNormalize(): void
3636
$subscription = $this->createMock(Subscription::class);
3737
$subscription->method('getSubscriber')->willReturn($subscriber);
3838
$subscription->method('getSubscriberList')->willReturn($subscriberList);
39-
$subscription->method('getCreationDate')->willReturn($subscriptionDate);
39+
$subscription->method('getCreatedAt')->willReturn($subscriptionDate);
4040

4141
$subscriberNormalizer = $this->createMock(SubscriberNormalizer::class);
4242
$subscriberListNormalizer = $this->createMock(SubscriberListNormalizer::class);

0 commit comments

Comments
 (0)