diff --git a/app/Http/Controllers/Admin/AdminCategoryController.php b/app/Http/Controllers/Admin/AdminCategoryController.php new file mode 100644 index 00000000..1ebe05d2 --- /dev/null +++ b/app/Http/Controllers/Admin/AdminCategoryController.php @@ -0,0 +1,80 @@ + $categories]); + } + + /** + * Show the form for creating a new resource. + */ + public function create() + { + return view('admin.category.create'); + } + + /** + * Store a newly created resource in storage. + */ + public function store(StoreRequest $request) + { + $data = $request->validated(); + $data['slug'] = Str::slug($data['title']); + /** @phpstan-ignore-next-line */ + Category::firstOrCreate($data); + + return redirect()->route('admin.category.index'); + } + + /** + * Display the specified resource. + */ + public function show(Category $category) + { + return view('admin.category.show', ['category' => $category]); + } + + /** + * Show the form for editing the specified resource. + */ + public function edit(Category $category) + { + return view('admin.category.edit', ['category' => $category]); + } + + /** + * Update the specified resource in storage. + */ + public function update(UpdateRequest $request, Category $category) + { + $data = $request->validated(); + $category->update($data); + + return view('admin.category.show', ['category' => $category]); + } + + /** + * Remove the specified resource from storage. + */ + public function destroy(Category $category) + { + $category->delete(); + + return redirect()->route('admin.category.index'); + } +} diff --git a/app/Http/Controllers/Admin/AdminPostController.php b/app/Http/Controllers/Admin/AdminPostController.php new file mode 100644 index 00000000..7a19b556 --- /dev/null +++ b/app/Http/Controllers/Admin/AdminPostController.php @@ -0,0 +1,93 @@ +service = $service; + } + + /** + * Display a listing of the resource. + */ + public function index() + { + $posts = Post::all(); + + return view('admin.post.index', ['posts' => $posts]); + } + + /** + * Show the form for creating a new resource. + */ + public function create() + { + $categories = Category::all(); + $tags = Tag::all(); + + return view('admin.post.create', ['categories' => $categories, 'tags' => $tags]); + } + + /** + * Store a newly created resource in storage. + */ + public function store(StoreRequest $request) + { + $data = $request->validated(); + $this->service->store($data); + + return redirect()->route('admin.post.index'); + } + + /** + * Display the specified resource. + */ + public function show(Post $post) + { + return view('admin.post.show', ['post' => $post]); + } + + /** + * Show the form for editing the specified resource. + */ + public function edit(Post $post) + { + $categories = Category::all(); + $tags = Tag::all(); + + return view('admin.post.edit', ['post' => $post, 'categories' => $categories, 'tags' => $tags]); + } + + /** + * Update the specified resource in storage. + */ + public function update(UpdateRequest $request, Post $post) + { + $data = $request->validated(); + $post = $this->service->update($data, $post); + + return redirect()->route('admin.post.show', ['post' => $post]); + } + + /** + * Remove the specified resource from storage. + */ + public function destroy(Post $post) + { + $post->delete(); + + return redirect()->route('admin.post.index'); + } +} diff --git a/app/Http/Controllers/Admin/AdminTagController.php b/app/Http/Controllers/Admin/AdminTagController.php new file mode 100644 index 00000000..0ab7f641 --- /dev/null +++ b/app/Http/Controllers/Admin/AdminTagController.php @@ -0,0 +1,78 @@ + $tags]); + } + + /** + * Show the form for creating a new resource. + */ + public function create() + { + return view('admin.tag.create'); + } + + /** + * Store a newly created resource in storage. + */ + public function store(StoreRequest $request) + { + $data = $request->validated(); + /** @phpstan-ignore-next-line */ + Tag::firstOrCreate($data); + + return redirect()->route('admin.tag.index'); + } + + /** + * Display the specified resource. + */ + public function show(Tag $tag) + { + return view('admin.tag.show', ['tag' => $tag]); + } + + /** + * Show the form for editing the specified resource. + */ + public function edit(Tag $tag) + { + return view('admin.tag.edit', ['tag' => $tag]); + } + + /** + * Update the specified resource in storage. + */ + public function update(UpdateRequest $request, Tag $tag) + { + $data = $request->validated(); + $tag->update($data); + + return view('admin.tag.show', ['tag' => $tag]); + } + + /** + * Remove the specified resource from storage. + */ + public function destroy(Tag $tag) + { + $tag->delete(); + + return redirect()->route('admin.tag.index'); + } +} diff --git a/app/Http/Controllers/Admin/AdminUserController.php b/app/Http/Controllers/Admin/AdminUserController.php new file mode 100644 index 00000000..1ecd4c07 --- /dev/null +++ b/app/Http/Controllers/Admin/AdminUserController.php @@ -0,0 +1,78 @@ + $users]); + } + + /** + * Show the form for creating a new resource. + */ + public function create() + { + return view('admin.user.create'); + } + + /** + * Store a newly created resource in storage. + */ + public function store(StoreRequest $request) + { + $data = $request->validated(); + StoreUserJob::dispatch($data); + + return redirect()->route('admin.user.index'); + } + + /** + * Display the specified resource. + */ + public function show(User $user) + { + return view('admin.user.show', ['user' => $user]); + } + + /** + * Show the form for editing the specified resource. + */ + public function edit(User $user) + { + return view('admin.user.edit', ['user' => $user]); + } + + /** + * Update the specified resource in storage. + */ + public function update(UpdateRequest $request, User $user) + { + $data = $request->validated(); + $user->update($data); + + return view('admin.user.show', ['user' => $user]); + } + + /** + * Remove the specified resource from storage. + */ + public function destroy(User $user) + { + $user->delete(); + + return redirect()->route('admin.user.index'); + } +} diff --git a/app/Http/Controllers/Admin/Category/CreateController.php b/app/Http/Controllers/Admin/Category/CreateController.php deleted file mode 100644 index 895dd14f..00000000 --- a/app/Http/Controllers/Admin/Category/CreateController.php +++ /dev/null @@ -1,14 +0,0 @@ -make('admin.category.create'); - } -} diff --git a/app/Http/Controllers/Admin/Category/DeleteController.php b/app/Http/Controllers/Admin/Category/DeleteController.php deleted file mode 100644 index e6838248..00000000 --- a/app/Http/Controllers/Admin/Category/DeleteController.php +++ /dev/null @@ -1,16 +0,0 @@ -delete(); - - return redirect()->route('admin.category.index'); - } -} diff --git a/app/Http/Controllers/Admin/Category/EditController.php b/app/Http/Controllers/Admin/Category/EditController.php deleted file mode 100644 index 34ea3a7c..00000000 --- a/app/Http/Controllers/Admin/Category/EditController.php +++ /dev/null @@ -1,15 +0,0 @@ -make('admin.category.edit', ['category' => $category]); - } -} diff --git a/app/Http/Controllers/Admin/Category/IndexController.php b/app/Http/Controllers/Admin/Category/IndexController.php deleted file mode 100644 index 1a780e76..00000000 --- a/app/Http/Controllers/Admin/Category/IndexController.php +++ /dev/null @@ -1,17 +0,0 @@ -make('admin.category.index', ['categories' => $categories]); - } -} diff --git a/app/Http/Controllers/Admin/Category/ShowController.php b/app/Http/Controllers/Admin/Category/ShowController.php deleted file mode 100644 index 4c3a43ec..00000000 --- a/app/Http/Controllers/Admin/Category/ShowController.php +++ /dev/null @@ -1,15 +0,0 @@ -make('admin.category.show', ['category' => $category]); - } -} diff --git a/app/Http/Controllers/Admin/Category/StoreController.php b/app/Http/Controllers/Admin/Category/StoreController.php deleted file mode 100644 index 518dd935..00000000 --- a/app/Http/Controllers/Admin/Category/StoreController.php +++ /dev/null @@ -1,21 +0,0 @@ -validated(); - $data['slug'] = Str::slug($data['title']); - /** @phpstan-ignore-next-line */ - Category::firstOrCreate($data); - - return redirect()->route('admin.category.index'); - } -} diff --git a/app/Http/Controllers/Admin/Category/UpdateController.php b/app/Http/Controllers/Admin/Category/UpdateController.php deleted file mode 100644 index 498b156b..00000000 --- a/app/Http/Controllers/Admin/Category/UpdateController.php +++ /dev/null @@ -1,19 +0,0 @@ -validated(); - $category->update($data); - - return $view_factory->make('admin.category.show', ['category' => $category]); - } -} diff --git a/app/Http/Controllers/Admin/Post/BaseController.php b/app/Http/Controllers/Admin/Post/BaseController.php deleted file mode 100644 index 0e77c53d..00000000 --- a/app/Http/Controllers/Admin/Post/BaseController.php +++ /dev/null @@ -1,20 +0,0 @@ -service = $service; - } -} diff --git a/app/Http/Controllers/Admin/Post/CreateController.php b/app/Http/Controllers/Admin/Post/CreateController.php deleted file mode 100644 index feadc4ba..00000000 --- a/app/Http/Controllers/Admin/Post/CreateController.php +++ /dev/null @@ -1,18 +0,0 @@ -make('admin.post.create', ['categories' => $categories, 'tags' => $tags]); - } -} diff --git a/app/Http/Controllers/Admin/Post/DeleteController.php b/app/Http/Controllers/Admin/Post/DeleteController.php deleted file mode 100644 index ee056c97..00000000 --- a/app/Http/Controllers/Admin/Post/DeleteController.php +++ /dev/null @@ -1,15 +0,0 @@ -delete(); - - return redirect()->route('admin.post.index'); - } -} diff --git a/app/Http/Controllers/Admin/Post/EditController.php b/app/Http/Controllers/Admin/Post/EditController.php deleted file mode 100644 index 4b3f1a61..00000000 --- a/app/Http/Controllers/Admin/Post/EditController.php +++ /dev/null @@ -1,19 +0,0 @@ -make('admin.post.edit', ['post' => $post, 'categories' => $categories, 'tags' => $tags]); - } -} diff --git a/app/Http/Controllers/Admin/Post/IndexController.php b/app/Http/Controllers/Admin/Post/IndexController.php deleted file mode 100644 index c5bec6f0..00000000 --- a/app/Http/Controllers/Admin/Post/IndexController.php +++ /dev/null @@ -1,16 +0,0 @@ -make('admin.post.index', ['posts' => $posts]); - } -} diff --git a/app/Http/Controllers/Admin/Post/ShowController.php b/app/Http/Controllers/Admin/Post/ShowController.php deleted file mode 100644 index a18342b4..00000000 --- a/app/Http/Controllers/Admin/Post/ShowController.php +++ /dev/null @@ -1,14 +0,0 @@ -make('admin.post.show', ['post' => $post]); - } -} diff --git a/app/Http/Controllers/Admin/Post/StoreController.php b/app/Http/Controllers/Admin/Post/StoreController.php deleted file mode 100644 index c4ee7a8a..00000000 --- a/app/Http/Controllers/Admin/Post/StoreController.php +++ /dev/null @@ -1,16 +0,0 @@ -validated(); - $this->service->store($data); - - return redirect()->route('admin.post.index'); - } -} diff --git a/app/Http/Controllers/Admin/Post/UpdateController.php b/app/Http/Controllers/Admin/Post/UpdateController.php deleted file mode 100644 index 8c3cf5a1..00000000 --- a/app/Http/Controllers/Admin/Post/UpdateController.php +++ /dev/null @@ -1,17 +0,0 @@ -validated(); - $post = $this->service->update($data, $post); - - return redirect()->route('admin.post.show', ['post' => $post]); - } -} diff --git a/app/Http/Controllers/Admin/Tag/CreateController.php b/app/Http/Controllers/Admin/Tag/CreateController.php deleted file mode 100644 index fc7ce0df..00000000 --- a/app/Http/Controllers/Admin/Tag/CreateController.php +++ /dev/null @@ -1,14 +0,0 @@ -make('admin.tag.create'); - } -} diff --git a/app/Http/Controllers/Admin/Tag/DeleteController.php b/app/Http/Controllers/Admin/Tag/DeleteController.php deleted file mode 100644 index 233220b2..00000000 --- a/app/Http/Controllers/Admin/Tag/DeleteController.php +++ /dev/null @@ -1,16 +0,0 @@ -delete(); - - return redirect()->route('admin.tag.index'); - } -} diff --git a/app/Http/Controllers/Admin/Tag/EditController.php b/app/Http/Controllers/Admin/Tag/EditController.php deleted file mode 100644 index b90c2f60..00000000 --- a/app/Http/Controllers/Admin/Tag/EditController.php +++ /dev/null @@ -1,15 +0,0 @@ -make('admin.tag.edit', ['tag' => $tag]); - } -} diff --git a/app/Http/Controllers/Admin/Tag/IndexController.php b/app/Http/Controllers/Admin/Tag/IndexController.php deleted file mode 100644 index cd1ca83b..00000000 --- a/app/Http/Controllers/Admin/Tag/IndexController.php +++ /dev/null @@ -1,17 +0,0 @@ -make('admin.tag.index', ['tags' => $tags]); - } -} diff --git a/app/Http/Controllers/Admin/Tag/ShowController.php b/app/Http/Controllers/Admin/Tag/ShowController.php deleted file mode 100644 index 913f72d2..00000000 --- a/app/Http/Controllers/Admin/Tag/ShowController.php +++ /dev/null @@ -1,15 +0,0 @@ -make('admin.tag.show', ['tag' => $tag]); - } -} diff --git a/app/Http/Controllers/Admin/Tag/StoreController.php b/app/Http/Controllers/Admin/Tag/StoreController.php deleted file mode 100644 index 510601ac..00000000 --- a/app/Http/Controllers/Admin/Tag/StoreController.php +++ /dev/null @@ -1,19 +0,0 @@ -validated(); - /** @phpstan-ignore-next-line */ - Tag::firstOrCreate($data); - - return redirect()->route('admin.tag.index'); - } -} diff --git a/app/Http/Controllers/Admin/Tag/UpdateController.php b/app/Http/Controllers/Admin/Tag/UpdateController.php deleted file mode 100644 index b72966d9..00000000 --- a/app/Http/Controllers/Admin/Tag/UpdateController.php +++ /dev/null @@ -1,19 +0,0 @@ -validated(); - $tag->update($data); - - return $view_factory->make('admin.tag.show', ['tag' => $tag]); - } -} diff --git a/app/Http/Controllers/Admin/User/CreateController.php b/app/Http/Controllers/Admin/User/CreateController.php deleted file mode 100644 index f51571c1..00000000 --- a/app/Http/Controllers/Admin/User/CreateController.php +++ /dev/null @@ -1,14 +0,0 @@ -make('admin.user.create'); - } -} diff --git a/app/Http/Controllers/Admin/User/DeleteController.php b/app/Http/Controllers/Admin/User/DeleteController.php deleted file mode 100644 index dd1ecae2..00000000 --- a/app/Http/Controllers/Admin/User/DeleteController.php +++ /dev/null @@ -1,16 +0,0 @@ -delete(); - - return redirect()->route('admin.user.index'); - } -} diff --git a/app/Http/Controllers/Admin/User/EditController.php b/app/Http/Controllers/Admin/User/EditController.php deleted file mode 100644 index 84e976cf..00000000 --- a/app/Http/Controllers/Admin/User/EditController.php +++ /dev/null @@ -1,15 +0,0 @@ -make('admin.user.edit', ['user' => $user]); - } -} diff --git a/app/Http/Controllers/Admin/User/IndexController.php b/app/Http/Controllers/Admin/User/IndexController.php deleted file mode 100644 index 1d93942c..00000000 --- a/app/Http/Controllers/Admin/User/IndexController.php +++ /dev/null @@ -1,17 +0,0 @@ -make('admin.user.index', ['users' => $users]); - } -} diff --git a/app/Http/Controllers/Admin/User/ShowController.php b/app/Http/Controllers/Admin/User/ShowController.php deleted file mode 100644 index b58b8a00..00000000 --- a/app/Http/Controllers/Admin/User/ShowController.php +++ /dev/null @@ -1,15 +0,0 @@ -make('admin.user.show', ['user' => $user]); - } -} diff --git a/app/Http/Controllers/Admin/User/StoreController.php b/app/Http/Controllers/Admin/User/StoreController.php deleted file mode 100644 index 70a60568..00000000 --- a/app/Http/Controllers/Admin/User/StoreController.php +++ /dev/null @@ -1,18 +0,0 @@ -validated(); - StoreUserJob::dispatch($data); - - return redirect()->route('admin.user.index'); - } -} diff --git a/app/Http/Controllers/Admin/User/UpdateController.php b/app/Http/Controllers/Admin/User/UpdateController.php deleted file mode 100644 index 645dc5bc..00000000 --- a/app/Http/Controllers/Admin/User/UpdateController.php +++ /dev/null @@ -1,19 +0,0 @@ -validated(); - $user->update($data); - - return $view_factory->make('admin.user.show', ['user' => $user]); - } -} diff --git a/app/Service/PostService.php b/app/Service/PostService.php index 1b868ee9..958592d9 100644 --- a/app/Service/PostService.php +++ b/app/Service/PostService.php @@ -23,6 +23,10 @@ public function store($data) $tagIds = $data['tag_ids']; unset($data['tag_ids']); } + if (isset($data['category_id'])) { + $categoryId = $data['category_id']; + unset($data['category_id']); + } if (isset($data['preview_image'])) { $data['preview_image'] = Storage::disk('public')->put('/images', $data['preview_image']); } @@ -37,6 +41,9 @@ public function store($data) if (isset($tagIds)) { $post->tags()->attach($tagIds); } + if (isset($categoryId)) { + $post->categories()->attach($categoryId); + } DB::commit(); } catch (Exception) { DB::rollBack(); diff --git a/resources/views/admin/category/index.blade.php b/resources/views/admin/category/index.blade.php index 463603ed..dbbf8964 100644 --- a/resources/views/admin/category/index.blade.php +++ b/resources/views/admin/category/index.blade.php @@ -43,15 +43,15 @@