Files
freeu-project/app/Http/Controllers/Admin/ManageBlogsController.php
2024-04-09 17:56:07 +05:30

92 lines
2.5 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Traits\HttpResponse;
use App\Services\Admin\BlogService;
use App\Http\Controllers\Controller;
use App\Http\Requests\StoreBlogRequest;
use App\Http\Requests\UpdateBlogRequest;
class ManageBlogsController extends Controller
{
use HttpResponse;
protected $blog;
public function __construct(BlogService $blog)
{
$this->blog = $blog;
}
public function index()
{
$check = checkSidebarAccess('manage-blogs');
if (!$check) {
abort(404);
}
return view('Admin.Pages.manage_cms.manage_blog.manage_blog', [
'blogs' => $this->blog->getAllBlogs()
]);
}
public function add_new_blog()
{
return view('Admin.Pages.manage_cms.manage_blog.add_new_blog', [
'tags' => $this->blog->getAllTags()
]);
}
public function store_blog(StoreBlogRequest $request)
{
$blogAdded = $this->blog->store($request);
return $blogAdded ?
$this->response('Blog Added Successfully!', 200) :
$this->response('Blog Could Not Be Added Successfully!', 400);
}
public function show_blog($id)
{
return view('Admin.Pages.manage_cms.manage_blog.show_blog', [
'blog' => $this->blog->show($id)
]);
}
public function edit_blog($id)
{
return view('Admin.Pages.manage_cms.manage_blog.edit_blog', [
'blog' => $this->blog->getBlog($id),
'tags' => $this->blog->getAllTags()
]);
}
public function update_blog(UpdateBlogRequest $request)
{
$blogUpdated = $this->blog->update($request);
return $blogUpdated ?
$this->response('Blog Updated Successfully!', 200) :
$this->response('Blog Updation Error!', 400);
}
public function delete_blog($id)
{
$checkBlogExists = $this->blog->getBlog($id);
if ($checkBlogExists) {
$this->blog->delete($id);
$this->blog->deleteFile($checkBlogExists);
return response(['status' => 200]);
} else {
return response(['status' => 204]);
}
}
public function update_status(Request $request)
{
$statusUpdated = $this->blog->updateStatus($request);
if (!$statusUpdated) {
return response()->json(['status' => 400, 'message' => 'Error Changing Category Status!']);
}
return response()->json(['status' => 200, 'message' => 'Status Changed!']);
}
}