style updates
This commit is contained in:
@@ -1,4 +1,54 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Api\Http\Controllers;
|
||||
use Illuminate\Database\Eloquent\Builder; use Illuminate\Http\Resources\Json\AnonymousResourceCollection; use Modules\Api\Http\Resources\ContentResource; use Modules\Blog\Models\Blog; use Modules\News\Models\News; use Modules\Pages\Models\Page;
|
||||
final class ContentController {public function pages(): AnonymousResourceCollection{return $this->many(Page::query()->where('status','published'));}public function blog(): AnonymousResourceCollection{return $this->many(Blog::query()->published());}public function news(): AnonymousResourceCollection{return $this->many(News::query()->published());}public function page(Page $page): ContentResource{abort_unless($page->status==='published',404);return new ContentResource($page);}public function blogPost(Blog $blog): ContentResource{abort_unless(Blog::query()->published()->whereKey($blog)->exists(),404);return new ContentResource($blog);}public function newsArticle(News $news): ContentResource{abort_unless(News::query()->published()->whereKey($news)->exists(),404);return new ContentResource($news);}private function many(Builder $q): AnonymousResourceCollection{return ContentResource::collection($q->latest('updated_at')->paginate((int)config('api.pagination',20)));}}
|
||||
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
|
||||
use Modules\Api\Http\Resources\ContentResource;
|
||||
use Modules\Blog\Models\Blog;
|
||||
use Modules\News\Models\News;
|
||||
use Modules\Pages\Models\Page;
|
||||
|
||||
final class ContentController
|
||||
{
|
||||
public function pages(): AnonymousResourceCollection
|
||||
{
|
||||
return $this->many(Page::query()->where('status', 'published'));
|
||||
}
|
||||
|
||||
public function blog(): AnonymousResourceCollection
|
||||
{
|
||||
return $this->many(Blog::query()->published());
|
||||
}
|
||||
|
||||
public function news(): AnonymousResourceCollection
|
||||
{
|
||||
return $this->many(News::query()->published());
|
||||
}
|
||||
|
||||
public function page(Page $page): ContentResource
|
||||
{
|
||||
abort_unless($page->status === 'published', 404);
|
||||
|
||||
return new ContentResource($page);
|
||||
}
|
||||
|
||||
public function blogPost(Blog $blog): ContentResource
|
||||
{
|
||||
abort_unless(Blog::query()->published()->whereKey($blog)->exists(), 404);
|
||||
|
||||
return new ContentResource($blog);
|
||||
}
|
||||
|
||||
public function newsArticle(News $news): ContentResource
|
||||
{
|
||||
abort_unless(News::query()->published()->whereKey($news)->exists(), 404);
|
||||
|
||||
return new ContentResource($news);
|
||||
}
|
||||
|
||||
private function many(Builder $q): AnonymousResourceCollection
|
||||
{
|
||||
return ContentResource::collection($q->latest('updated_at')->paginate((int) config('api.pagination', 20)));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user