diff --git a/app/Containers/AppStructure/UI/WEB/Controllers/PageController.php b/app/Containers/AppStructure/UI/WEB/Controllers/PageController.php index a4a7a8e..89d7762 100644 --- a/app/Containers/AppStructure/UI/WEB/Controllers/PageController.php +++ b/app/Containers/AppStructure/UI/WEB/Controllers/PageController.php @@ -7,43 +7,50 @@ use App\Containers\AppStructure\UI\WEB\Transformers\PageResource; use App\Ship\Contracts\SeoServiceInterface; use App\Ship\Controllers\Controller; use Illuminate\Support\Facades\Cache; -use Inertia\Inertia; +use Inertia\Response; class PageController extends Controller { public function __construct(readonly SeoServiceInterface $seoPageProvider){} - public function render(string $path): \Inertia\Response + public function render(string $path): Response { - // Генерируем уникальный ключ для кеширования - $cacheKey = 'page_' . md5($path); - - // Пытаемся получить данные из кеша - $page = Cache::remember($cacheKey, now()->addHours(48), function () use ($path) { - return Page::where('path', '=', $path) - ->with('section.pages.section', 'section.mainSection') - ->first(); - }); - - if ($page === null) { - abort(404); - } + $page = $this->getPageByPath($path); + $this->handleCheckNotFoundStatusCode($page); $subSectionPages = $page->section ? PageResource::collection($page->section->pages) : null; - $seo = $this->seoPageProvider->getSeoForModel($page); - - - $page = new PageResource($page); - - - if ($page->code != 200) { - abort($page->code); - } + $pageResource = new PageResource($page); + $this->handlePageStatusCode($pageResource); return inertia()->render('Page', [ - 'page' => $page, + 'page' => $pageResource, 'subSectionPages' => $subSectionPages, 'seo' => $seo, ]); } + + private function handlePageStatusCode(PageResource $pageResource): void + { + if ($pageResource->code != 200) { + abort($pageResource->code); + } + } + + private function handleCheckNotFoundStatusCode($page): void + { + if ($page === null) { + abort(404); + } + } + + public function getPageByPath(string $path): ?Page + { + $cacheKey = 'page_' . md5($path); + + return Cache::remember($cacheKey, now()->addHours(48), function () use ($path) { + return Page::where('path', '=', $path) + ->with('section.pages.section', 'section.mainSection') + ->first(); + }); + } } diff --git a/app/Http/Controllers/MainController.php b/app/Http/Controllers/MainController.php index 5bc19f8..ebd12b0 100644 --- a/app/Http/Controllers/MainController.php +++ b/app/Http/Controllers/MainController.php @@ -101,7 +101,7 @@ class MainController extends Controller $event_date_start = (new DateTime())->format('Y-m-d'); return EventThumbnailResource::collection( - Event::select('title', 'slug', 'event_date_start', 'address', 'is_online', 'category_id') + Event::select('title', 'slug', 'event_date_start', 'event_time_start' , 'address', 'is_online', 'category_id') ->where('event_date_start', '>=', $event_date_start) ->orderBy('event_date_start', 'asc') ->limit(3) diff --git a/app/Services/Filament/Domain/Posts/TgPostPublisher.php b/app/Services/Filament/Domain/Posts/TgPostPublisher.php index 0a74d95..5ad0559 100644 --- a/app/Services/Filament/Domain/Posts/TgPostPublisher.php +++ b/app/Services/Filament/Domain/Posts/TgPostPublisher.php @@ -2,11 +2,8 @@ namespace App\Services\Filament\Domain\Posts; -use App\Enums\PostStatus; -use App\Jobs\CreateTgPost; -use App\Jobs\CreateTgPostJob; -use App\Jobs\UpdateTgPost; -use App\Models\Post; +use App\Containers\Article\Enums\PostStatus; +use App\Containers\Article\Models\Post; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Storage; diff --git a/resources/js/Pages/Main.vue b/resources/js/Pages/Main.vue index 2ff76b0..8f42e0e 100644 --- a/resources/js/Pages/Main.vue +++ b/resources/js/Pages/Main.vue @@ -6,6 +6,9 @@
+
+ +