From 55f80fcd25e8d76f65b56e84be25440cdf8a4a68 Mon Sep 17 00:00:00 2001 From: Ambroise Maupate Date: Mon, 24 Jul 2023 18:11:29 +0200 Subject: [PATCH] feat: Use `ramsey/uuid` for Webhook ID generation, doctrine/dbal removed AutoGenerated uuids --- composer.json | 1 + lib/RoadizCoreBundle/composer.json | 1 + lib/RoadizCoreBundle/src/Api/Filter/ArchiveFilter.php | 9 ++++++++- lib/RoadizCoreBundle/src/Bag/NodeTypes.php | 3 +-- lib/RoadizCoreBundle/src/Bag/Roles.php | 5 +---- lib/RoadizCoreBundle/src/Bag/Settings.php | 3 +-- lib/RoadizCoreBundle/src/Entity/Webhook.php | 6 +++++- lib/Rozier/src/package.json | 1 + 8 files changed, 19 insertions(+), 10 deletions(-) diff --git a/composer.json b/composer.json index c74e1621..3d3b1d72 100644 --- a/composer.json +++ b/composer.json @@ -64,6 +64,7 @@ "pimple/pimple": "^3.3.1", "psr/cache": ">=1.0.1", "psr/log": ">=1.1", + "ramsey/uuid": "^4.7", "rezozero/crypto": "^1.0.0", "rezozero/intervention-request-bundle": "~3.0.0", "rezozero/liform-bundle": "^0.18.1", diff --git a/lib/RoadizCoreBundle/composer.json b/lib/RoadizCoreBundle/composer.json index 36505d0d..35a46b61 100644 --- a/lib/RoadizCoreBundle/composer.json +++ b/lib/RoadizCoreBundle/composer.json @@ -37,6 +37,7 @@ "lexik/jwt-authentication-bundle": "^2.13", "phpdocumentor/reflection-docblock": "^5.2", "phpoffice/phpspreadsheet": "^1.15", + "ramsey/uuid": "^4.7", "rezozero/crypto": "^1.0.0", "rezozero/intervention-request-bundle": "~3.0.0", "rezozero/liform-bundle": "^0.18.1", diff --git a/lib/RoadizCoreBundle/src/Api/Filter/ArchiveFilter.php b/lib/RoadizCoreBundle/src/Api/Filter/ArchiveFilter.php index 787ed421..a7cf3fc6 100644 --- a/lib/RoadizCoreBundle/src/Api/Filter/ArchiveFilter.php +++ b/lib/RoadizCoreBundle/src/Api/Filter/ArchiveFilter.php @@ -22,7 +22,14 @@ final class ArchiveFilter extends AbstractContextAwareFilter */ protected function isDateField(string $property, string $resourceClass): bool { - return isset(DateFilter::DOCTRINE_DATE_TYPES[(string) $this->getDoctrineFieldType($property, $resourceClass)]); + $type = $this->getDoctrineFieldType($property, $resourceClass); + if (null === $type) { + return false; + } + if (\is_string($type)) { + return \in_array($type, \array_keys(DateFilter::DOCTRINE_DATE_TYPES), true); + } + return $type->getName() === 'datetime' || $type->getName() === 'date'; } /** diff --git a/lib/RoadizCoreBundle/src/Bag/NodeTypes.php b/lib/RoadizCoreBundle/src/Bag/NodeTypes.php index f30d6348..44147c4a 100644 --- a/lib/RoadizCoreBundle/src/Bag/NodeTypes.php +++ b/lib/RoadizCoreBundle/src/Bag/NodeTypes.php @@ -4,7 +4,6 @@ namespace RZ\Roadiz\CoreBundle\Bag; -use Doctrine\DBAL\DBALException; use Doctrine\Persistence\ManagerRegistry; use RZ\Roadiz\Bag\LazyParameterBag; use RZ\Roadiz\Contracts\NodeType\NodeTypeResolverInterface; @@ -46,7 +45,7 @@ protected function populateParameters(): void $this->parameters[$nodeType->getName()] = $nodeType; $this->parameters[$nodeType->getSourceEntityFullQualifiedClassName()] = $nodeType; } - } catch (DBALException $e) { + } catch (\Exception $e) { $this->parameters = []; } $this->ready = true; diff --git a/lib/RoadizCoreBundle/src/Bag/Roles.php b/lib/RoadizCoreBundle/src/Bag/Roles.php index 13187bca..4d13624c 100644 --- a/lib/RoadizCoreBundle/src/Bag/Roles.php +++ b/lib/RoadizCoreBundle/src/Bag/Roles.php @@ -4,7 +4,6 @@ namespace RZ\Roadiz\CoreBundle\Bag; -use Doctrine\DBAL\DBALException; use Doctrine\Persistence\ManagerRegistry; use RZ\Roadiz\Bag\LazyParameterBag; use RZ\Roadiz\CoreBundle\Entity\Role; @@ -44,7 +43,7 @@ protected function populateParameters(): void foreach ($roles as $role) { $this->parameters[$role->getRole()] = $role; } - } catch (DBALException $e) { + } catch (\Exception $e) { $this->parameters = []; } $this->ready = true; @@ -57,8 +56,6 @@ protected function populateParameters(): void * @param null $default * * @return Role - * @throws \Doctrine\ORM\ORMException - * @throws \Doctrine\ORM\OptimisticLockException */ public function get($key, $default = null): Role { diff --git a/lib/RoadizCoreBundle/src/Bag/Settings.php b/lib/RoadizCoreBundle/src/Bag/Settings.php index b80714d5..128d9b89 100644 --- a/lib/RoadizCoreBundle/src/Bag/Settings.php +++ b/lib/RoadizCoreBundle/src/Bag/Settings.php @@ -4,7 +4,6 @@ namespace RZ\Roadiz\CoreBundle\Bag; -use Doctrine\DBAL\DBALException; use Doctrine\Persistence\ManagerRegistry; use RZ\Roadiz\Bag\LazyParameterBag; use RZ\Roadiz\CoreBundle\Entity\Document; @@ -45,7 +44,7 @@ protected function populateParameters(): void foreach ($settings as $setting) { $this->parameters[$setting->getName()] = $setting->getValue(); } - } catch (DBALException $e) { + } catch (\Exception $e) { $this->parameters = []; } $this->ready = true; diff --git a/lib/RoadizCoreBundle/src/Entity/Webhook.php b/lib/RoadizCoreBundle/src/Entity/Webhook.php index 06218073..22f2caaa 100644 --- a/lib/RoadizCoreBundle/src/Entity/Webhook.php +++ b/lib/RoadizCoreBundle/src/Entity/Webhook.php @@ -28,7 +28,6 @@ class Webhook extends AbstractDateTimed implements WebhookInterface #[ ORM\Id, ORM\Column(type:"string", length:36), - ORM\GeneratedValue(strategy: "UUID"), Serializer\Groups(["id"]), SymfonySerializer\Groups(["id"]), Serializer\Type("string") @@ -99,6 +98,11 @@ class Webhook extends AbstractDateTimed implements WebhookInterface #[SymfonySerializer\Ignore] protected ?Node $rootNode = null; + public function __construct(?string $uuid = null) + { + $this->id = $uuid ?? \Ramsey\Uuid\Uuid::uuid4()->toString(); + } + /** * @return string|null */ diff --git a/lib/Rozier/src/package.json b/lib/Rozier/src/package.json index 133d9f77..34f8ce91 100644 --- a/lib/Rozier/src/package.json +++ b/lib/Rozier/src/package.json @@ -107,6 +107,7 @@ "postcss-import": "^11.0.0", "postcss-loader": "^2.0.8", "prettier": "^2.7.1", + "ramsey/uuid": "^4.7", "resolve-url-loader": "^2.2.0", "rimraf": "^2.6.0", "sass-loader": "^6.0.6",