From 3a3cf9067acbe694098df8d000d2f50e03fcb566 Mon Sep 17 00:00:00 2001 From: Andrei Shapiro Date: Tue, 4 Feb 2025 04:04:37 +0300 Subject: [PATCH 1/4] feat: extend event logs --- .../Event/TranslationActionEvent.php | 69 +++++++++++++++++++ .../Service/TranslationCreationService.php | 14 +++- .../Service/TranslationDeletionService.php | 14 +++- .../Service/TranslationUpdateService.php | 50 ++++++++++++-- .../TranslationServiceProvider.php | 4 ++ 5 files changed, 144 insertions(+), 7 deletions(-) create mode 100644 models/classes/Translation/Event/TranslationActionEvent.php diff --git a/models/classes/Translation/Event/TranslationActionEvent.php b/models/classes/Translation/Event/TranslationActionEvent.php new file mode 100644 index 0000000000..38b76fcb94 --- /dev/null +++ b/models/classes/Translation/Event/TranslationActionEvent.php @@ -0,0 +1,69 @@ +action = $action; + $this->originalResourceId = $originalResourceId; + $this->translationResourceId = $translationResourceId; + $this->locale = $locale; + $this->data = $data; + } + + public function getName(): string + { + return __CLASS__; + } + + public function jsonSerialize(): array + { + return [ + 'action' => $this->action, + 'originalResourceId' => $this->originalResourceId, + 'translationResourceId' => $this->translationResourceId, + 'locale' => $this->locale, + 'data' => $this->data, + ]; + } +} diff --git a/models/classes/Translation/Service/TranslationCreationService.php b/models/classes/Translation/Service/TranslationCreationService.php index 87ca04a803..0d6adbaccb 100644 --- a/models/classes/Translation/Service/TranslationCreationService.php +++ b/models/classes/Translation/Service/TranslationCreationService.php @@ -24,6 +24,7 @@ use core_kernel_classes_Resource; use oat\generis\model\data\Ontology; +use oat\oatbox\event\EventManager; use oat\tao\model\Language\Business\Contract\LanguageRepositoryInterface; use oat\tao\model\Language\Language; use oat\tao\model\resources\Command\ResourceTransferCommand; @@ -31,6 +32,7 @@ use oat\tao\model\TaoOntology; use oat\tao\model\Translation\Command\CreateTranslationCommand; use oat\tao\model\Translation\Entity\ResourceTranslatable; +use oat\tao\model\Translation\Event\TranslationActionEvent; use oat\tao\model\Translation\Exception\ResourceTranslationException; use oat\tao\model\Translation\Query\ResourceTranslatableQuery; use oat\tao\model\Translation\Query\ResourceTranslationQuery; @@ -48,6 +50,7 @@ class TranslationCreationService private LanguageRepositoryInterface $languageRepository; private LoggerInterface $logger; private TranslatedIntoLanguagesSynchronizer $translatedIntoLanguagesSynchronizer; + private EventManager $eventManager; private array $resourceTransferServices; private array $callables; @@ -58,7 +61,8 @@ public function __construct( ResourceTranslationRepository $resourceTranslationRepository, LanguageRepositoryInterface $languageRepository, LoggerInterface $logger, - TranslatedIntoLanguagesSynchronizer $translatedIntoLanguagesSynchronizer + TranslatedIntoLanguagesSynchronizer $translatedIntoLanguagesSynchronizer, + EventManager $eventManager ) { $this->ontology = $ontology; $this->resourceTranslatableRepository = $resourceTranslatableRepository; @@ -66,6 +70,7 @@ public function __construct( $this->languageRepository = $languageRepository; $this->logger = $logger; $this->translatedIntoLanguagesSynchronizer = $translatedIntoLanguagesSynchronizer; + $this->eventManager = $eventManager; } public function setResourceTransfer(string $resourceType, ResourceTransferInterface $resourceTransfer): void @@ -194,6 +199,13 @@ public function create(CreateTranslationCommand $command): core_kernel_classes_R $this->translatedIntoLanguagesSynchronizer->sync($instance); + $this->eventManager->trigger(new TranslationActionEvent( + TranslationActionEvent::ACTION_CREATED, + $resourceUri, + $clonedInstanceUri, + $language->getCode() + )); + return $clonedInstance; } catch (Throwable $exception) { $this->logger->error( diff --git a/models/classes/Translation/Service/TranslationDeletionService.php b/models/classes/Translation/Service/TranslationDeletionService.php index 9a691ff5c4..13c1ade79d 100644 --- a/models/classes/Translation/Service/TranslationDeletionService.php +++ b/models/classes/Translation/Service/TranslationDeletionService.php @@ -25,7 +25,9 @@ use core_kernel_classes_Resource; use oat\generis\model\data\Ontology; use oat\generis\model\resource\Contract\ResourceDeleterInterface; +use oat\oatbox\event\EventManager; use oat\tao\model\Translation\Entity\AbstractResource; +use oat\tao\model\Translation\Event\TranslationActionEvent; use oat\tao\model\Translation\Exception\ResourceTranslationException; use oat\tao\model\Translation\Query\ResourceTranslationQuery; use oat\tao\model\Translation\Repository\ResourceTranslationRepository; @@ -40,19 +42,22 @@ class TranslationDeletionService private ResourceTranslationRepository $resourceTranslationRepository; private LoggerInterface $logger; private TranslatedIntoLanguagesSynchronizer $translatedIntoLanguagesSynchronizer; + private EventManager $eventManager; public function __construct( Ontology $ontology, ResourceDeleterInterface $resourceDeleter, ResourceTranslationRepository $resourceTranslationRepository, LoggerInterface $logger, - TranslatedIntoLanguagesSynchronizer $translatedIntoLanguagesSynchronizer + TranslatedIntoLanguagesSynchronizer $translatedIntoLanguagesSynchronizer, + EventManager $eventManager ) { $this->ontology = $ontology; $this->resourceDeleter = $resourceDeleter; $this->resourceTranslationRepository = $resourceTranslationRepository; $this->logger = $logger; $this->translatedIntoLanguagesSynchronizer = $translatedIntoLanguagesSynchronizer; + $this->eventManager = $eventManager; } public function deleteByRequest(ServerRequestInterface $request): core_kernel_classes_Resource @@ -88,6 +93,13 @@ public function deleteByRequest(ServerRequestInterface $request): core_kernel_cl $resource = $this->ontology->getResource($translation->getResourceUri()); $this->resourceDeleter->delete($resource); + + $this->eventManager->trigger(new TranslationActionEvent( + TranslationActionEvent::ACTION_DELETED, + $resourceUri, + $translation->getResourceUri(), + $translation->getLanguageCode() + )); } $this->translatedIntoLanguagesSynchronizer->sync($this->ontology->getResource($resourceUri)); diff --git a/models/classes/Translation/Service/TranslationUpdateService.php b/models/classes/Translation/Service/TranslationUpdateService.php index 05c6463e82..98c2334128 100644 --- a/models/classes/Translation/Service/TranslationUpdateService.php +++ b/models/classes/Translation/Service/TranslationUpdateService.php @@ -24,8 +24,10 @@ use core_kernel_classes_Resource; use oat\generis\model\data\Ontology; +use oat\oatbox\event\EventManager; use oat\tao\model\TaoOntology; use oat\tao\model\Translation\Command\UpdateTranslationCommand; +use oat\tao\model\Translation\Event\TranslationActionEvent; use oat\tao\model\Translation\Exception\ResourceTranslationException; use Psr\Log\LoggerInterface; use Throwable; @@ -35,15 +37,18 @@ class TranslationUpdateService private Ontology $ontology; private LoggerInterface $logger; private TranslatedIntoLanguagesSynchronizer $translatedIntoLanguagesSynchronizer; + private EventManager $eventManager; public function __construct( Ontology $ontology, LoggerInterface $logger, - TranslatedIntoLanguagesSynchronizer $translatedIntoLanguagesSynchronizer + TranslatedIntoLanguagesSynchronizer $translatedIntoLanguagesSynchronizer, + EventManager $eventManager ) { $this->ontology = $ontology; $this->logger = $logger; $this->translatedIntoLanguagesSynchronizer = $translatedIntoLanguagesSynchronizer; + $this->eventManager = $eventManager; } public function update(UpdateTranslationCommand $command): core_kernel_classes_Resource @@ -73,13 +78,30 @@ public function update(UpdateTranslationCommand $command): core_kernel_classes_R ); } - $instance->editPropertyValues( - $this->ontology->getProperty(TaoOntology::PROPERTY_TRANSLATION_PROGRESS), - $command->getProgressUri() - ); + $translationProgressProperty = $this->ontology->getProperty(TaoOntology::PROPERTY_TRANSLATION_PROGRESS); + $oldProgressUri = $instance->getOnePropertyValue($translationProgressProperty)->getUri(); + + if ($oldProgressUri === $command->getProgressUri()) { + return $instance; + } + + $instance->editPropertyValues($translationProgressProperty, $command->getProgressUri()); $this->translatedIntoLanguagesSynchronizer->sync($instance); + $this->eventManager->trigger(new TranslationActionEvent( + TranslationActionEvent::ACTION_UPDATED, + $this->getOriginalResourceUri($instance), + $instance->getUri(), + $this->getLocaleCode($instance), + [ + $translationProgressProperty->getUri() => [ + 'old' => $oldProgressUri, + 'new' => $command->getProgressUri(), + ], + ] + )); + return $instance; } catch (Throwable $exception) { $this->logger->error( @@ -94,4 +116,22 @@ public function update(UpdateTranslationCommand $command): core_kernel_classes_R throw $exception; } } + + private function getOriginalResourceUri(core_kernel_classes_Resource $translation): string + { + $originalResourceUri = $translation->getOnePropertyValue( + $this->ontology->getProperty(TaoOntology::PROPERTY_TRANSLATION_ORIGINAL_RESOURCE_URI) + ); + + return $originalResourceUri->getUri(); + } + + private function getLocaleCode(core_kernel_classes_Resource $translation): string + { + $language = $translation->getOnePropertyValue( + $this->ontology->getProperty(TaoOntology::PROPERTY_LANGUAGE) + ); + + return str_replace(TaoOntology::LANGUAGE_PREFIX, '', $language->getUri()); + } } diff --git a/models/classes/Translation/ServiceProvider/TranslationServiceProvider.php b/models/classes/Translation/ServiceProvider/TranslationServiceProvider.php index 70437f7f54..95f18ed407 100644 --- a/models/classes/Translation/ServiceProvider/TranslationServiceProvider.php +++ b/models/classes/Translation/ServiceProvider/TranslationServiceProvider.php @@ -26,6 +26,7 @@ use oat\generis\model\DependencyInjection\ContainerServiceProviderInterface; use oat\generis\model\kernel\persistence\smoothsql\search\ComplexSearchService; use oat\generis\model\resource\Service\ResourceDeleter; +use oat\oatbox\event\EventManager; use oat\oatbox\log\LoggerService; use oat\oatbox\user\UserLanguageServiceInterface; use oat\tao\model\featureFlag\FeatureFlagChecker; @@ -140,6 +141,7 @@ public function __invoke(ContainerConfigurator $configurator): void service(LanguageRepositoryInterface::class), service(LoggerService::SERVICE_ID), service(TranslatedIntoLanguagesSynchronizer::class), + service(EventManager::SERVICE_ID), ] ) ->public(); @@ -153,6 +155,7 @@ public function __invoke(ContainerConfigurator $configurator): void service(ResourceTranslationRepository::class), service(LoggerService::SERVICE_ID), service(TranslatedIntoLanguagesSynchronizer::class), + service(EventManager::SERVICE_ID), ] ) ->public(); @@ -164,6 +167,7 @@ public function __invoke(ContainerConfigurator $configurator): void service(Ontology::SERVICE_ID), service(LoggerService::SERVICE_ID), service(TranslatedIntoLanguagesSynchronizer::class), + service(EventManager::SERVICE_ID), ] ) ->public(); From 89300aae8eede0f01970017918a05b13c4c87b07 Mon Sep 17 00:00:00 2001 From: Andrei Shapiro Date: Tue, 4 Feb 2025 04:38:23 +0300 Subject: [PATCH 2/4] chore: fix/add unit tests --- .../Event/TranslationActionEventTest.php | 54 +++++++++++++++++++ .../TranslationCreationServiceTest.php | 4 +- .../TranslationDeletionServiceTest.php | 4 ++ .../Service/TranslationUpdateServiceTest.php | 42 ++++++++++++++- 4 files changed, 101 insertions(+), 3 deletions(-) create mode 100644 test/unit/models/classes/Translation/Event/TranslationActionEventTest.php diff --git a/test/unit/models/classes/Translation/Event/TranslationActionEventTest.php b/test/unit/models/classes/Translation/Event/TranslationActionEventTest.php new file mode 100644 index 0000000000..c8ad9d7b04 --- /dev/null +++ b/test/unit/models/classes/Translation/Event/TranslationActionEventTest.php @@ -0,0 +1,54 @@ +assertInstanceOf(Event::class, $sut); + $this->assertInstanceOf(JsonSerializable::class, $sut); + $this->assertEquals( + [ + 'action' => 'someAction', + 'originalResourceId' => 'originalResourceId', + 'translationResourceId' => 'translationResourceId', + 'locale' => 'locale', + 'data' => [] + ], + $sut->jsonSerialize() + ); + } +} diff --git a/test/unit/models/classes/Translation/Service/TranslationCreationServiceTest.php b/test/unit/models/classes/Translation/Service/TranslationCreationServiceTest.php index 8f8a4c6344..fbd4ccbab6 100644 --- a/test/unit/models/classes/Translation/Service/TranslationCreationServiceTest.php +++ b/test/unit/models/classes/Translation/Service/TranslationCreationServiceTest.php @@ -27,6 +27,7 @@ use core_kernel_classes_Class; use core_kernel_classes_Property; use core_kernel_classes_Resource; +use oat\oatbox\event\EventManager; use oat\tao\model\Language\Business\Contract\LanguageRepositoryInterface; use oat\tao\model\Language\Language; use oat\tao\model\Language\LanguageCollection; @@ -90,6 +91,7 @@ protected function setUp(): void $this->languageRepository, $this->logger, $this->translatedIntoLanguagesSynchronizer, + $this->createMock(EventManager::class) ); $this->service->setResourceTransfer(TaoOntology::CLASS_URI_ITEM, $this->resourceTransfer); @@ -122,7 +124,7 @@ public function testCreate(): void ->method('getUri') ->willReturn($languageUri); $language - ->expects($this->once()) + ->expects($this->exactly(2)) ->method('getCode') ->willReturn('pt-BR'); diff --git a/test/unit/models/classes/Translation/Service/TranslationDeletionServiceTest.php b/test/unit/models/classes/Translation/Service/TranslationDeletionServiceTest.php index 4c6caa037f..3e06419bca 100644 --- a/test/unit/models/classes/Translation/Service/TranslationDeletionServiceTest.php +++ b/test/unit/models/classes/Translation/Service/TranslationDeletionServiceTest.php @@ -26,6 +26,8 @@ use core_kernel_classes_Resource; use oat\generis\model\resource\Contract\ResourceDeleterInterface; +use oat\oatbox\event\EventManager; +use oat\tao\model\TaoOntology; use oat\tao\model\Translation\Entity\ResourceTranslation; use oat\tao\model\Translation\Exception\ResourceTranslationException; use oat\tao\model\Translation\Repository\ResourceTranslationRepository; @@ -71,6 +73,7 @@ protected function setUp(): void $this->resourceTranslationRepository, $this->logger, $this->translatedIntoLanguagesSynchronizer, + $this->createMock(EventManager::class) ); } @@ -91,6 +94,7 @@ public function testDelete(): void ); $translation = new ResourceTranslation($translationResourceId, 'something'); + $translation->addMetadata(TaoOntology::PROPERTY_LANGUAGE, $languageUri, 'pt-BR'); $resourceCollection = new ResourceCollection($translation); $translationResource = $this->createMock(core_kernel_classes_Resource::class); diff --git a/test/unit/models/classes/Translation/Service/TranslationUpdateServiceTest.php b/test/unit/models/classes/Translation/Service/TranslationUpdateServiceTest.php index 6d54db10a8..c032450b9d 100644 --- a/test/unit/models/classes/Translation/Service/TranslationUpdateServiceTest.php +++ b/test/unit/models/classes/Translation/Service/TranslationUpdateServiceTest.php @@ -27,6 +27,7 @@ use core_kernel_classes_Property; use core_kernel_classes_Resource; use oat\generis\model\data\Ontology; +use oat\oatbox\event\EventManager; use oat\tao\model\TaoOntology; use oat\tao\model\Translation\Command\UpdateTranslationCommand; use oat\tao\model\Translation\Exception\ResourceTranslationException; @@ -58,7 +59,8 @@ protected function setUp(): void $this->service = new TranslationUpdateService( $this->ontology, $this->logger, - $this->translatedIntoLanguagesSynchronizer + $this->translatedIntoLanguagesSynchronizer, + $this->createMock(EventManager::class) ); } @@ -66,16 +68,44 @@ public function testUpdateSuccess(): void { $typeProperty = $this->createMock(core_kernel_classes_Property::class); $progressProperty = $this->createMock(core_kernel_classes_Property::class); + $originalResourceUriProperty = $this->createMock(core_kernel_classes_Property::class); + $languageProperty = $this->createMock(core_kernel_classes_Property::class); $translationType = $this->createMock(core_kernel_classes_Resource::class); $translationType ->method('getUri') ->willReturn(TaoOntology::PROPERTY_VALUE_TRANSLATION_TYPE_TRANSLATION); + $translationProgress = $this->createMock(core_kernel_classes_Resource::class); + $translationProgress + ->method('getUri') + ->willReturn(TaoOntology::PROPERTY_VALUE_TRANSLATION_PROGRESS_TRANSLATING); + + $originalResourceUri = $this->createMock(core_kernel_classes_Resource::class); + $originalResourceUri + ->method('getUri') + ->willReturn('originalResourceUri'); + + $translationLanguage = $this->createMock(core_kernel_classes_Resource::class); + $translationLanguage + ->method('getUri') + ->willReturn(TaoOntology::LANGUAGE_PREFIX . 'en-US'); + $resource = $this->createMock(core_kernel_classes_Resource::class); $resource ->method('getOnePropertyValue') - ->willReturn($translationType); + ->withConsecutive( + [$typeProperty], + [$progressProperty], + [$originalResourceUriProperty], + [$languageProperty] + ) + ->willReturnOnConsecutiveCalls( + $translationType, + $translationProgress, + $originalResourceUri, + $translationLanguage + ); $resource ->method('exists') @@ -105,6 +135,14 @@ public function testUpdateSuccess(): void TaoOntology::PROPERTY_TRANSLATION_PROGRESS, $progressProperty ], + [ + TaoOntology::PROPERTY_TRANSLATION_ORIGINAL_RESOURCE_URI, + $originalResourceUriProperty + ], + [ + TaoOntology::PROPERTY_LANGUAGE, + $languageProperty + ], ] ); From 097773b89b9313302ccd80a86de855cb9d5ddd2e Mon Sep 17 00:00:00 2001 From: Andrei Shapiro Date: Wed, 5 Feb 2025 17:15:18 +0300 Subject: [PATCH 3/4] chore: add type to action --- models/classes/Translation/Event/TranslationActionEvent.php | 4 ++++ .../Translation/Service/TranslationCreationService.php | 1 + .../Translation/Service/TranslationDeletionService.php | 4 ++++ .../classes/Translation/Service/TranslationUpdateService.php | 1 + .../classes/Translation/Event/TranslationActionEventTest.php | 2 ++ 5 files changed, 12 insertions(+) diff --git a/models/classes/Translation/Event/TranslationActionEvent.php b/models/classes/Translation/Event/TranslationActionEvent.php index 38b76fcb94..10a7629012 100644 --- a/models/classes/Translation/Event/TranslationActionEvent.php +++ b/models/classes/Translation/Event/TranslationActionEvent.php @@ -32,6 +32,7 @@ class TranslationActionEvent implements Event, JsonSerializable public const ACTION_DELETED = 'translation.deleted'; private string $action; + private string $type; private string $originalResourceId; private string $translationResourceId; private string $locale; @@ -39,12 +40,14 @@ class TranslationActionEvent implements Event, JsonSerializable public function __construct( string $action, + string $type, string $originalResourceId, string $translationResourceId, string $locale, array $data = [] ) { $this->action = $action; + $this->type = $type; $this->originalResourceId = $originalResourceId; $this->translationResourceId = $translationResourceId; $this->locale = $locale; @@ -60,6 +63,7 @@ public function jsonSerialize(): array { return [ 'action' => $this->action, + 'type' => $this->type, 'originalResourceId' => $this->originalResourceId, 'translationResourceId' => $this->translationResourceId, 'locale' => $this->locale, diff --git a/models/classes/Translation/Service/TranslationCreationService.php b/models/classes/Translation/Service/TranslationCreationService.php index 0d6adbaccb..b3792a34f4 100644 --- a/models/classes/Translation/Service/TranslationCreationService.php +++ b/models/classes/Translation/Service/TranslationCreationService.php @@ -201,6 +201,7 @@ public function create(CreateTranslationCommand $command): core_kernel_classes_R $this->eventManager->trigger(new TranslationActionEvent( TranslationActionEvent::ACTION_CREATED, + $rootId, $resourceUri, $clonedInstanceUri, $language->getCode() diff --git a/models/classes/Translation/Service/TranslationDeletionService.php b/models/classes/Translation/Service/TranslationDeletionService.php index 13c1ade79d..2c21663408 100644 --- a/models/classes/Translation/Service/TranslationDeletionService.php +++ b/models/classes/Translation/Service/TranslationDeletionService.php @@ -75,6 +75,9 @@ public function deleteByRequest(ServerRequestInterface $request): core_kernel_cl } try { + $resource = $this->ontology->getResource($resourceUri); + $rootId = $resource->getRootId(); + $translations = $this->resourceTranslationRepository ->find(new ResourceTranslationQuery([$resourceUri], $languageUri)); @@ -96,6 +99,7 @@ public function deleteByRequest(ServerRequestInterface $request): core_kernel_cl $this->eventManager->trigger(new TranslationActionEvent( TranslationActionEvent::ACTION_DELETED, + $rootId, $resourceUri, $translation->getResourceUri(), $translation->getLanguageCode() diff --git a/models/classes/Translation/Service/TranslationUpdateService.php b/models/classes/Translation/Service/TranslationUpdateService.php index 98c2334128..cc908937a0 100644 --- a/models/classes/Translation/Service/TranslationUpdateService.php +++ b/models/classes/Translation/Service/TranslationUpdateService.php @@ -91,6 +91,7 @@ public function update(UpdateTranslationCommand $command): core_kernel_classes_R $this->eventManager->trigger(new TranslationActionEvent( TranslationActionEvent::ACTION_UPDATED, + $instance->getRootId(), $this->getOriginalResourceUri($instance), $instance->getUri(), $this->getLocaleCode($instance), diff --git a/test/unit/models/classes/Translation/Event/TranslationActionEventTest.php b/test/unit/models/classes/Translation/Event/TranslationActionEventTest.php index c8ad9d7b04..88c0ee074e 100644 --- a/test/unit/models/classes/Translation/Event/TranslationActionEventTest.php +++ b/test/unit/models/classes/Translation/Event/TranslationActionEventTest.php @@ -33,6 +33,7 @@ public function testEvent(): void { $sut = new TranslationActionEvent( 'someAction', + 'item', 'originalResourceId', 'translationResourceId', 'locale' @@ -43,6 +44,7 @@ public function testEvent(): void $this->assertEquals( [ 'action' => 'someAction', + 'type' => 'item', 'originalResourceId' => 'originalResourceId', 'translationResourceId' => 'translationResourceId', 'locale' => 'locale', From 1b497ec3849e297c16da78fcce3fb1b4ac22927b Mon Sep 17 00:00:00 2001 From: Andrei Shapiro Date: Fri, 7 Feb 2025 11:57:19 +0300 Subject: [PATCH 4/4] chore: fix unit test, remove unnecessary call to DB --- .../Translation/Service/TranslationDeletionService.php | 6 +++--- .../Translation/Service/TranslationDeletionServiceTest.php | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/models/classes/Translation/Service/TranslationDeletionService.php b/models/classes/Translation/Service/TranslationDeletionService.php index 2c21663408..caa0d8e07c 100644 --- a/models/classes/Translation/Service/TranslationDeletionService.php +++ b/models/classes/Translation/Service/TranslationDeletionService.php @@ -93,9 +93,9 @@ public function deleteByRequest(ServerRequestInterface $request): core_kernel_cl /** @var AbstractResource $translation */ foreach ($translations as $translation) { - $resource = $this->ontology->getResource($translation->getResourceUri()); + $translationResource = $this->ontology->getResource($translation->getResourceUri()); - $this->resourceDeleter->delete($resource); + $this->resourceDeleter->delete($translationResource); $this->eventManager->trigger(new TranslationActionEvent( TranslationActionEvent::ACTION_DELETED, @@ -106,7 +106,7 @@ public function deleteByRequest(ServerRequestInterface $request): core_kernel_cl )); } - $this->translatedIntoLanguagesSynchronizer->sync($this->ontology->getResource($resourceUri)); + $this->translatedIntoLanguagesSynchronizer->sync($resource); return $resource; } catch (Throwable $exception) { diff --git a/test/unit/models/classes/Translation/Service/TranslationDeletionServiceTest.php b/test/unit/models/classes/Translation/Service/TranslationDeletionServiceTest.php index 3e06419bca..2ef9d85aa0 100644 --- a/test/unit/models/classes/Translation/Service/TranslationDeletionServiceTest.php +++ b/test/unit/models/classes/Translation/Service/TranslationDeletionServiceTest.php @@ -88,7 +88,7 @@ public function testDelete(): void ->method('getParsedBody') ->willReturn( [ - 'id' => $resourceUri, + 'id' => $translationResourceId, 'languageUri' => $languageUri, ] ); @@ -108,7 +108,7 @@ public function testDelete(): void $this->ontology ->expects($this->exactly(2)) ->method('getResource') - ->withConsecutive([$translationResourceId], ['id1']) + ->withConsecutive([$translationResourceId], [$translationResourceId]) ->willReturnOnConsecutiveCalls($translationResource, $originalResource); $this->translatedIntoLanguagesSynchronizer