Edit File: AdminController.php
<?php namespace App\Http\Controllers\Admin; use App\Models\Role; use App\Services\AdminService; use App\Traits\ReportTrait; use Illuminate\Http\Request; use App\Traits\ResponseTrait; use App\Http\Controllers\Controller; use App\Http\Requests\Admin\Admin\StoreRequest; use App\Http\Requests\Admin\Admin\UpdateRequest; use App\Services\NotificationService; class AdminController extends Controller { use ResponseTrait, ReportTrait; protected $adminService; public function __construct(AdminService $adminService) { $this->adminService = $adminService; } public function index() { if (request()->ajax()) { $admins = $this->adminService->all(paginateNum: 15); $html = view('admin.admins.table', compact('admins'))->render(); return response()->json(['html' => $html]); } return view('admin.admins.index'); } public function create() { $roles = Role::latest()->get(); return view('admin.admins.create', compact('roles')); } public function store(StoreRequest $request) { $this->adminService->create($request->validated()); $this->addToLog('اضافه مدير'); return $this->successOtherData(['url' => route('admin.admins.index')]); } public function edit($id) { $admin = $this->adminService->find($id); $roles = Role::latest()->get(); return view('admin.admins.edit', ['admin' => $admin, 'roles' => $roles]); } public function update($id, UpdateRequest $request) { $this->adminService->edit($request->validated(), $id); $this->addToLog('تعديل مدير'); return $this->successOtherData(['url' => route('admin.admins.index')]); } public function show($id) { $admin = $this->adminService->find($id); return view('admin.admins.show', ['admin' => $admin]); } public function destroy($id) { $response = $this->adminService->delete($id); if($response) { $this->addToLog('حذف مدير'); } return $this->successOtherData(['id' => $id]); } public function destroyAll(Request $request) { $response = $this->adminService->deleteAll($request); $this->addToLog('حذف العديد من المديرين'); return response()->json($response['key']); } public function block(Request $request) { $response = $this->adminService->block($request->id); return response()->json(['message' => $response['msg']]); } public function notifications(NotificationService $notificationService) { $data = $notificationService->markAsReadNotifications(auth('admin')->user()); return view('admin.admins.notifications',['notifications' => $data['notifications']]); } public function deleteNotifications(Request $request, NotificationService $notificationService) { $data = $notificationService->deleteSelected(user: auth('admin')->user(), request: $request); return $this->successMsg($data['msg']); } }
Back to File Manager