url = $url; $this->user = Auth::guard('admin')->user(); } public function index(){ try { $this->authorizeForUser($this->user,'list', new Admin); $adminData = Admin::all(); foreach($adminData as $admin) { $admin->image_path = $this->url->to('/storage/profile_pictures/' . $admin->image_path); } return DataTables::of($adminData)->make(true); } catch (AuthorizationException $e) { return $e->getMessage(); } } public function getRoles() { $roles = Permission::select('id','role_name as role')->get(); return response()->json([ 'data' => $roles ], 201); } public function saveAdmin(Request $request) { $this->authorize('add', new Admin); $data =[ "name" => $request->get('name'), "email" => $request->get('email'), "password" => Hash::make($request->input('password')), "last_name" => $request->get('last_name'), "phone_no" => $request->get('phone_no'), "role_id" => $request->get('role_id') ]; $admin = Admin::create($data); $image = $request->get('profile_pic'); $fileName = 'profile-' . time(); $logo = base64_decode($image); $ext = (explode('/', finfo_buffer(finfo_open(), $logo, FILEINFO_MIME_TYPE))[1]); $imageName = $fileName . '.' . $ext; Storage::disk('local')->put("/public/profile_pictures/" . $imageName, $logo); $admin->image_path = $imageName; $admin->save(); return response()->json([ 'success' => "Data Saved! " ], 201); } public function editAdmin($id) { $adminData = Admin::find($id); if($adminData->image_path) $adminData->image_path = $this->url->to('/storage/profile_pictures/' . $adminData->image_path); else $adminData->image_path=''; return response()->json([ 'data' => $adminData ], 201); } public function updateAdmin($id,Request $request) { $admin = Admin::find($id); $admin->name = $request->get('name'); // $admin->email = $request->get('email'); if($request->input('password')) $admin->password = Hash::make($request->input('password')); $admin->last_name = $request->get('last_name'); $admin->phone_no = $request->get('phone_no'); $admin->role_id = $request->get('role_id'); if($request->get('profile_pic')) { $image = $request->get('profile_pic'); $fileName = 'profile-' . time(); $logo = base64_decode($image); $ext = (explode('/', finfo_buffer(finfo_open(), $logo, FILEINFO_MIME_TYPE))[1]); $imageName = $fileName . '.' . $ext; Storage::disk('local')->put("/public/profile_pictures/" . $imageName, $logo); $admin->image_path = $imageName; } $admin->save(); return response()->json([ 'data' => $admin ], 201); } public function detailAdmin($id) { $admin = Admin::find($id); $admin->image_path = $this->url->to('/storage/profile_pictures/' . $admin->image_path); return response()->json([ 'data' => $admin ], 201); } }