refactor ClientAcademicJournalController; replace caching logic with action classes for academic journal retrieval and improve code clarity

This commit is contained in:
F4ilji
2025-07-19 12:49:10 +05:00
parent 1fc793089c
commit 4558282da8
6 changed files with 162 additions and 56 deletions
@@ -0,0 +1,27 @@
<?php
namespace App\Containers\Science\Actions;
use App\Containers\Science\Tasks\GetAllAcademicJournalsTask;
use App\Containers\Science\UI\WEB\Transformers\AcademicJournalResource;
use App\Ship\Contracts\SeoServiceInterface;
class GetAllAcademicJournalsAction
{
public function __construct(
private readonly GetAllAcademicJournalsTask $getAllAcademicJournalsTask,
private readonly SeoServiceInterface $seoService
) {
}
public function run(): array
{
$journals = $this->getAllAcademicJournalsTask->run();
$seo = $this->seoService->getSeoForCurrentPage();
return [
'journals' => AcademicJournalResource::collection($journals),
'seo' => $seo,
];
}
}