user()->can('list', User::class)) { return \MessageResponse::error(trans('messages.access_denied')); } $Users = User::with(['medical_center', 'roles'])->paginate(10); return \MessageResponse::data($Users); } public function store(StoreUserRequest $request) { $UserData = [ 'name' => $request->name , 'cell_number' => $request->cell_number , 'medical_center_id' => $request->medical_center_id , 'status' => 'PreRegister', 'verified' => 1, 'password' => bcrypt($request->password), ]; $User = User::create($UserData); return \MessageResponse::success(trans('messages.success')); } public function edit(User $User) { return \MessageResponse::data($User); } public function update(StoreUserRequest $request, User $User) { $UserData = [ 'name' => $request->name , 'cell_number' => $request->cell_number , 'medical_center_id' => $request->medical_center_id , 'status' => 'PreRegister', 'verified' => 1, 'password' => bcrypt($request->password), ]; $User->update($UserData); return \MessageResponse::success(trans('messages.success')); } public function destroy(User $User) { if (auth('api')->user()->can('delete', $User)) { return \MessageResponse::error(trans('messages.failed')); } $User->delete(); return \MessageResponse::success(trans('messages.success')); } public function getByMedicalCenter(MedicalCenter $MedicalCenter) { $MedicalCenter = $MedicalCenter->load(['users' => function ($query) { return $query->select(['id', 'medical_center_id', 'name', 'cell_number', 'status']); }, 'users.roles']); return \MessageResponse::data($MedicalCenter); } public function changeStatus(User $User) { if (!auth('api')->user()->can('changeStatus', User::class)) { return \MessageResponse::error(trans('messages.access_denied')); } if ($User->status == 'Active') { $User->status = 'Suspended'; } else { $User->status = 'Active'; } $User->save(); return \MessageResponse::data($User); } public function changeRole(User $User, Request $request) { if (!auth('api')->user()->can('changeRole', User::class)) { return \MessageResponse::error(trans('messages.access_denied')); } $User->syncRoles($request->roles); return \MessageResponse::data($User); } public function updateInfo(Request $request) { auth('api')->user()->update($request->all()); return \MessageResponse::success(trans('messages.success')); } public function getInfo() { return \MessageResponse::data([ 'user' => auth('api')->user(), 'roles' => auth('api')->user()->getRoleNames() ]); } }