Skip to content

Commit

Permalink
Merge tag v2.3.17 into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
roadiz-ci committed Jul 5, 2024
1 parent 775bce3 commit 81fdcb8
Show file tree
Hide file tree
Showing 6 changed files with 39 additions and 3 deletions.
8 changes: 8 additions & 0 deletions src/Entity/Document.php
Original file line number Diff line number Diff line change
Expand Up @@ -506,6 +506,14 @@ public function getDocumentTranslationsByTranslation(TranslationInterface $trans
return $this->documentTranslations->matching($criteria);
}

#[SymfonySerializer\Ignore]
public function getDocumentTranslationsByDefaultTranslation(): ?DocumentTranslation
{
return $this->documentTranslations->findFirst(function (int $key, DocumentTranslation $documentTranslation) {
return $documentTranslation->getTranslation()->isDefaultTranslation();
});
}

/**
* @param DocumentTranslation $documentTranslation
* @return $this
Expand Down
8 changes: 8 additions & 0 deletions src/Entity/Folder.php
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,14 @@ public function getTranslatedFoldersByTranslation(TranslationInterface $translat
return $this->translatedFolders->matching($criteria);
}

#[SymfonySerializer\Ignore]
public function getTranslatedFoldersByDefaultTranslation(): ?FolderTranslation
{
return $this->translatedFolders->findFirst(function (int $key, FolderTranslation $translatedFolder) {
return $translatedFolder->getTranslation()->isDefaultTranslation();
});
}

/**
* @return string|null
* @Serializer\VirtualProperty
Expand Down
8 changes: 8 additions & 0 deletions src/Entity/Tag.php
Original file line number Diff line number Diff line change
Expand Up @@ -314,6 +314,14 @@ public function getTranslatedTagsByTranslation(TranslationInterface $translation
});
}

#[SymfonySerializer\Ignore]
public function getTranslatedTagsByDefaultTranslation(): ?TagTranslation
{
return $this->translatedTags->findFirst(function (int $key, TagTranslation $tagTranslation) {
return $tagTranslation->getTranslation()->isDefaultTranslation();
});
}

/**
* @return string
*/
Expand Down
6 changes: 5 additions & 1 deletion src/Serializer/Normalizer/DocumentNormalizer.php
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,11 @@ public function normalize(mixed $object, ?string $format = null, array $context
}

if (isset($context['translation']) && $context['translation'] instanceof TranslationInterface) {
$translatedData = $object->getDocumentTranslationsByTranslation($context['translation'])->first() ?: null;
/*
* Always falls back on default translation if no translation is found for Documents entities
*/
$translatedData = $object->getDocumentTranslationsByTranslation($context['translation'])->first() ?:
$object->getDocumentTranslationsByDefaultTranslation();
if ($translatedData instanceof DocumentTranslation) {
$data['name'] = $translatedData->getName();
$data['description'] = $translatedData->getDescription();
Expand Down
6 changes: 5 additions & 1 deletion src/Serializer/Normalizer/FolderNormalizer.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,11 @@ public function normalize(mixed $object, ?string $format = null, array $context
$data = $this->decorated->normalize($object, $format, $context);
if ($object instanceof Folder && is_array($data)) {
if (isset($context['translation']) && $context['translation'] instanceof TranslationInterface) {
$translatedData = $object->getTranslatedFoldersByTranslation($context['translation'])->first() ?: null;
/*
* Always falls back on default translation if no translation is found for Folders entities
*/
$translatedData = $object->getTranslatedFoldersByTranslation($context['translation'])->first() ?:
$object->getTranslatedFoldersByDefaultTranslation();
if ($translatedData instanceof FolderTranslation) {
$data['name'] = $translatedData->getName();
}
Expand Down
6 changes: 5 additions & 1 deletion src/Serializer/Normalizer/TagNormalizer.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,11 @@ public function normalize(mixed $object, ?string $format = null, array $context
$this->stopwatch->start('normalizeTag', 'serializer');
/** @var array<string> $serializationGroups */
$serializationGroups = isset($context['groups']) && is_array($context['groups']) ? $context['groups'] : [];
$translatedData = $object->getTranslatedTagsByTranslation($context['translation'])->first() ?: null;
/*
* Always falls back on default translation if no translation is found for Tags entities
*/
$translatedData = $object->getTranslatedTagsByTranslation($context['translation'])->first() ?:
$object->getTranslatedTagsByDefaultTranslation();
if ($translatedData instanceof TagTranslation) {
$data['name'] = $translatedData->getName();
$data['description'] = $translatedData->getDescription();
Expand Down

0 comments on commit 81fdcb8

Please sign in to comment.