Skip to content

Commit 45013ca

Browse files
Andrey ErdikovAndrey Erdikov
authored andcommitted
[C0-3455] Поменял неймер при загрузке файлов, доработал логику работы с репозиторием каталога
1 parent b9e58fc commit 45013ca

File tree

5 files changed

+23
-9
lines changed

5 files changed

+23
-9
lines changed

src/Domain/Entity/MediaFile.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class MediaFile
3232
private $type;
3333

3434
/**
35-
* @var string
35+
* @var string|null
3636
*/
3737
private $name;
3838

@@ -56,7 +56,7 @@ public function __construct(
5656
MediaCatalog $catalog,
5757
string $title,
5858
MediaFileType $type,
59-
string $name,
59+
?string $name,
6060
MediaFileStorage $storage,
6161
string $originalName
6262
) {
@@ -109,7 +109,7 @@ public function getName(): string
109109
return $this->name;
110110
}
111111

112-
public function setName(string $name): void
112+
public function setName(?string $name): void
113113
{
114114
$this->name = $name;
115115
}

src/Domain/Repository/MediaCatalogRepository/MediaCatalogRepositoryInterface.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,20 @@
66

77
use Skyeng\MarketingCmsBundle\Domain\Entity\MediaCatalog;
88
use Skyeng\MarketingCmsBundle\Domain\Entity\ValueObject\Id;
9-
use Skyeng\MarketingCmsBundle\Domain\Repository\MediaCatalogRepository\Exception\MediaFileRepositoryException;
9+
use Skyeng\MarketingCmsBundle\Domain\Repository\MediaCatalogRepository\Exception\MediaCatalogRepositoryException;
1010

1111
interface MediaCatalogRepositoryInterface
1212
{
1313
public function getNextIdentity(): Id;
1414

1515
/**
1616
* @return MediaCatalog[]
17-
* @throws MediaFileRepositoryException
17+
* @throws MediaCatalogRepositoryException
1818
*/
1919
public function getAll(): array;
20+
21+
/**
22+
* @throws MediaCatalogRepositoryException
23+
*/
24+
public function getFirst(): ?MediaCatalog;
2025
}

src/Infrastructure/Doctrine/Repository/MediaCatalogRepository.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,13 @@ public function getAll(): array
3434
throw new MediaCatalogRepositoryException($e->getMessage(), $e->getCode(), $e);
3535
}
3636
}
37+
38+
public function getFirst(): ?MediaCatalog
39+
{
40+
try {
41+
return $this->findOneBy([], ['id' => 'desc']);
42+
} catch (Exception $e) {
43+
throw new MediaCatalogRepositoryException($e->getMessage(), $e->getCode(), $e);
44+
}
45+
}
3746
}

src/Resources/config/packages/vich_uploader.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ vich_uploader:
66
media_files:
77
uri_prefix: '%app.uploads_base_url%'
88
upload_destination: 'uploads.nfs'
9-
namer: Vich\UploaderBundle\Naming\OrignameNamer
9+
namer: Vich\UploaderBundle\Naming\SmartUniqueNamer

src/UI/Controller/Admin/MediaFileCrudController.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
use EasyCorp\Bundle\EasyAdminBundle\Field\AssociationField;
1515
use EasyCorp\Bundle\EasyAdminBundle\Field\TextField;
1616
use EasyCorp\Bundle\EasyAdminBundle\Filter\ChoiceFilter;
17+
use EasyCorp\Bundle\EasyAdminBundle\Filter\EntityFilter;
1718
use Skyeng\MarketingCmsBundle\Application\Cms\MediaFile\Service\MediaFilePathResolver;
1819
use Skyeng\MarketingCmsBundle\Domain\Entity\MediaFile;
1920
use Skyeng\MarketingCmsBundle\Domain\Entity\ValueObject\MediaFileStorage;
@@ -57,7 +58,6 @@ public static function getEntityFqcn(): string
5758
public function configureFilters(Filters $filters): Filters
5859
{
5960
return $filters
60-
// ->add(EntityFilter::new('catalog', 'Каталог')) TODO Fix
6161
->add(
6262
ChoiceFilter::new('type', 'Тип файла')->setChoices([MediaFileType::AVAILABLE_TYPES])
6363
);
@@ -98,7 +98,7 @@ public function configureActions(Actions $actions): Actions
9898
$actions->add(Crud::PAGE_INDEX, $getFileLink);
9999
$actions->add(Crud::PAGE_INDEX, $getFileHtml);
100100

101-
if (count($this->mediaCatalogRepository->getAll()) === 0) {
101+
if ($this->mediaCatalogRepository->getFirst() === null) {
102102
$actions->remove(Crud::PAGE_INDEX, Action::NEW);
103103
}
104104

@@ -130,7 +130,7 @@ public function createEntity(string $entityFqcn): MediaFile
130130
{
131131
return new MediaFile(
132132
$this->mediaFileRepository->getNextIdentity(),
133-
$this->mediaCatalogRepository->getAll()[0],
133+
$this->mediaCatalogRepository->getFirst(),
134134
'',
135135
new MediaFileType(MediaFileType::IMAGE_TYPE),
136136
'',

0 commit comments

Comments
 (0)