From 761aec8b697ca15e24665dd9cd47fbbff4211965 Mon Sep 17 00:00:00 2001 From: mahdi purHosseini Date: Mon, 8 Jan 2024 17:24:20 +0330 Subject: [PATCH] fix update info --- app/Http/Controllers/UserController.php | 194 ++++++++++---------- app/Http/Requests/UpdateInfoUserRequest.php | 22 +++ app/TestResult.php | 2 +- 3 files changed, 118 insertions(+), 100 deletions(-) create mode 100644 app/Http/Requests/UpdateInfoUserRequest.php diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 06b0cf66..d7cbb74a 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -2,192 +2,188 @@ namespace App\Http\Controllers; +use App\Http\Requests\UpdateInfoUserRequest; use Illuminate\Http\Request; use App\Http\Requests\StoreUserRequest; use App\MedicalCenter; use App\User; use App\Message; +use Illuminate\Support\Facades\DB; +use Packages\Messaging\src\Facades\MessageResponse; class UserController extends Controller { - public function index(Request $request) + public function index( Request $request ) { - $user = auth('api')->user(); - if ($user->cant('list', User::class)) { - return \MessageResponse::error(trans('messages.access_denied')); + $user = auth( 'api' )->user(); + if ( $user->cant( 'list' , User::class ) ) { + return MessageResponse::error( trans( 'messages.access_denied' ) ); } - if ($user->hasRole('Supervisor')) { + if ( $user->hasRole( 'Supervisor' ) ) { $medical_center_id = $user->medical_center_id; - } elseif($request->has('medical_center_id') && $request->medical_center_id) { + } elseif ( $request->has( 'medical_center_id' ) && $request->medical_center_id ) { $medical_center_id = $request->medical_center_id; } else { $medical_center_id = null; } - $Users = User::when($request->has('name') && $request->name, function($query) use($request){ - $query->where('name', 'LIKE', '%'.$request->name.'%'); - }) - ->when(($request->has('fromPicker') && $request->fromPicker) || ($request->has('upToPicker') && $request->upToPicker), function ($query) use ($request) - { - $from = ($request->fromPicker) ? date($request->fromPicker . ' 00:00:00') : date('2010-01-01' . ' 00:00:00'); - $upTo = ($request->upToPicker) ? date($request->upToPicker . ' 23:59:59') : date('Y-m-d' . ' 23:59:59'); - return $query->whereBetween('created_at', [$from, $upTo]); - }) - ->when($request->has('cell_number') && $request->cell_number, function($query) use($request){ - $query->where('cell_number', 'LIKE', '%'.$request->cell_number.'%'); - }) - ->when($request->has('role') && $request->role, function($query) use($request){ - $query->role($request->role); - }) - ->when($medical_center_id, function($query) use ($medical_center_id){ - $query->where('medical_center_id', $medical_center_id); - }) - ->with(['medical_center', 'roles'])->paginate(10); + $Users = User::when( $request->has( 'name' ) && $request->name , function ( $query ) use ( $request ) { + $query->where( 'name' , 'LIKE' , '%' . $request->name . '%' ); + } ) + ->when( ( $request->has( 'fromPicker' ) && $request->fromPicker ) || ( $request->has( 'upToPicker' ) && $request->upToPicker ) , function ( $query ) use ( $request ) { + $from = ( $request->fromPicker ) ? date( $request->fromPicker . ' 00:00:00' ) : date( '2010-01-01' . ' 00:00:00' ); + $upTo = ( $request->upToPicker ) ? date( $request->upToPicker . ' 23:59:59' ) : date( 'Y-m-d' . ' 23:59:59' ); + return $query->whereBetween( 'created_at' , [ $from , $upTo ] ); + } ) + ->when( $request->has( 'cell_number' ) && $request->cell_number , function ( $query ) use ( $request ) { + $query->where( 'cell_number' , 'LIKE' , '%' . $request->cell_number . '%' ); + } ) + ->when( $request->has( 'role' ) && $request->role , function ( $query ) use ( $request ) { + $query->role( $request->role ); + } ) + ->when( $medical_center_id , function ( $query ) use ( $medical_center_id ) { + $query->where( 'medical_center_id' , $medical_center_id ); + } ) + ->with( [ 'medical_center' , 'roles' ] )->paginate( 10 ); - return \MessageResponse::data($Users); + return MessageResponse::data( $Users ); } - public function store(StoreUserRequest $request) + public function store( StoreUserRequest $request ) { - if (auth('api')->user()->cant('store', User::class)) { - return \MessageResponse::error(trans('messages.failed')); + if ( auth( 'api' )->user()->cant( 'store' , User::class ) ) { + return MessageResponse::error( trans( 'messages.failed' ) ); } $UserData = [ 'name' => $request->name , 'cell_number' => $request->cell_number , 'medical_center_id' => $request->medical_center_id , - 'status' => 'Suspended', - 'verified' => "Verified", - 'password' => bcrypt($request->password), + 'status' => 'Suspended' , + 'verified' => "Verified" , + 'password' => bcrypt( $request->password ) , ]; - User::create($UserData); - return \MessageResponse::success(trans('messages.success')); + User::create( $UserData ); + return MessageResponse::success( trans( 'messages.success' ) ); } - public function edit(User $User) + public function edit( User $User ) { - return \MessageResponse::data($User); + return MessageResponse::data( $User ); } - public function update(StoreUserRequest $request, User $User) + public function update( StoreUserRequest $request , User $User ) { - if (auth('api')->user()->cant('update', $User)) { - return \MessageResponse::error(trans('messages.failed')); + if ( auth( 'api' )->user()->cant( 'update' , $User ) ) { + return MessageResponse::error( trans( 'messages.failed' ) ); } $UserData = [ 'name' => $request->name , 'cell_number' => $request->cell_number , 'medical_center_id' => $request->medical_center_id , - 'verified' => "Verified", - 'password' => bcrypt($request->password), + 'verified' => "Verified" , + 'password' => bcrypt( $request->password ) , ]; - $User->update($UserData); - return \MessageResponse::success(trans('messages.success')); + $User->update( $UserData ); + return MessageResponse::success( trans( 'messages.success' ) ); } - public function destroy(User $User) + public function destroy( User $User ) { - if (auth('api')->user()->cant('delete', $User)) { - return \MessageResponse::error(trans('messages.access_denied')); + if ( auth( 'api' )->user()->cant( 'delete' , $User ) ) { + return MessageResponse::error( trans( 'messages.access_denied' ) ); } $User->delete(); - return \MessageResponse::success(trans('messages.success')); + return MessageResponse::success( trans( 'messages.success' ) ); } - public function getByMedicalCenter(MedicalCenter $MedicalCenter) + public function getByMedicalCenter( MedicalCenter $MedicalCenter ) { - $user = auth('api')->user(); - if (auth('api')->user()->cant('getByMedicalCenter', $MedicalCenter)) { - return \MessageResponse::error(trans('messages.failed')); + $user = auth( 'api' )->user(); + if ( auth( 'api' )->user()->cant( 'getByMedicalCenter' , $MedicalCenter ) ) { + return MessageResponse::error( trans( 'messages.failed' ) ); } - $MedicalCenter = $MedicalCenter->load(['users' => function ($query) use ($user) { - if ($user->hasRole('User')) { - return $query->select(['id', 'medical_center_id', 'name', 'cell_number', 'status'])->where('id', $user->id); + $MedicalCenter = $MedicalCenter->load( [ 'users' => function ( $query ) use ( $user ) { + if ( $user->hasRole( 'User' ) ) { + return $query->select( [ 'id' , 'medical_center_id' , 'name' , 'cell_number' , 'status' ] )->where( 'id' , $user->id ); } else { - return $query->select(['id', 'medical_center_id', 'name', 'cell_number', 'status']); + return $query->select( [ 'id' , 'medical_center_id' , 'name' , 'cell_number' , 'status' ] ); } - }, 'users.roles']); - return \MessageResponse::data($MedicalCenter); + } , 'users.roles' ] ); + return MessageResponse::data( $MedicalCenter ); } - public function changeStatus(User $User) + public function changeStatus( User $User ) { - if (auth('api')->user()->cant('changeStatus', User::class)) { - return \MessageResponse::error(trans('messages.access_denied')); + if ( auth( 'api' )->user()->cant( 'changeStatus' , User::class ) ) { + return MessageResponse::error( trans( 'messages.access_denied' ) ); } - if ($User->status == 'Active') { + if ( $User->status == 'Active' ) { $User->status = 'Suspended'; - $tokens = \DB::table('oauth_access_tokens')->where('user_id', $User->id); - foreach($tokens->get() as $token) { - \DB::table('oauth_refresh_tokens')->where('access_token_id', $token->id)->delete(); + $tokens = DB::table( 'oauth_access_tokens' )->where( 'user_id' , $User->id ); + foreach ( $tokens->get() as $token ) { + DB::table( 'oauth_refresh_tokens' )->where( 'access_token_id' , $token->id )->delete(); } $tokens->delete(); } else { $User->status = 'Active'; } $User->save(); - return \MessageResponse::data($User); + return MessageResponse::data( $User ); } - public function changeRole(User $User, Request $request) + public function changeRole( User $User , Request $request ) { - if (auth('api')->user()->cant('changeRole', User::class)) { - return \MessageResponse::error(trans('messages.access_denied')); + if ( auth( 'api' )->user()->cant( 'changeRole' , User::class ) ) { + return MessageResponse::error( trans( 'messages.access_denied' ) ); } - $User->syncRoles($request->roles); - return \MessageResponse::data($User); + $User->syncRoles( $request->roles ); + return MessageResponse::data( $User ); } - public function updateInfo(Request $request) + public function updateInfo( UpdateInfoUserRequest $request ) { - auth('api')->user()->update($request->all()); - return \MessageResponse::success(trans('messages.success')); + auth( 'api' )->user()->update( $request->validated() ); + return MessageResponse::success( trans( 'messages.success' ) ); } public function getInfo() { - $user = auth('api')->user(); - $user->load('medical_center'); - return \MessageResponse::data([ 'user' => $user, 'roles' => auth('api')->user()->getRoleNames() ]); + $user = auth( 'api' )->user(); + $user->load( 'medical_center' ); + return MessageResponse::data( [ 'user' => $user , 'roles' => auth( 'api' )->user()->getRoleNames() ] ); } public function getMessages() { - $User = auth('api')->user(); - // $ReceivedMessages = $User->messagesReceived; - // $SentMessages = $User->messagesSent; - $SentMessages = Message::with('recipient_user')->where('sender_user_id', $User->id)->get(); - $ReceivedMessages = Message::with('sender_user')->where('recipient_user_id', $User->id)->get(); - - return \MessageResponse::data(['ReceivedMessages' => $ReceivedMessages, 'SentMessages' => $SentMessages]); + $User = auth( 'api' )->user(); + $SentMessages = Message::with( 'recipient_user' )->where( 'sender_user_id' , $User->id )->get(); + $ReceivedMessages = Message::with( 'sender_user' )->where( 'recipient_user_id' , $User->id )->get(); + return MessageResponse::data( [ 'ReceivedMessages' => $ReceivedMessages , 'SentMessages' => $SentMessages ] ); } - public function searchUser(Request $request) + public function searchUser( Request $request ) { - // if (auth('api')->user()->cant('searchUser', User::class)) { - // return \MessageResponse::error(trans('messages.access_denied')); - // } $role = null; $medical_center_id = null; - $User = auth('api')->user(); - if ($User->hasRole('Supervisor') || $User->hasRole('User')) { + $User = auth( 'api' )->user(); + if ( $User->hasRole( 'Supervisor' ) || $User->hasRole( 'User' ) ) { $medical_center_id = $User->medical_center_id; - if ($User->hasRole('Supervisor')){ + if ( $User->hasRole( 'Supervisor' ) ) { $role = 'Admin'; } } - $users = User::where('id', '<>', $User->id)->select('id', 'name')->where('name', 'LIKE', '%'.$request->name.'%') - ->when($medical_center_id, function($query) use ($medical_center_id){ - $query->where('medical_center_id', $medical_center_id); - }) - ->when($role, function($query) use($role){ - $query->role($role); - }) - ->get(); - return \MessageResponse::data($users); + $users = User::where( 'id' , '<>' , $User->id )->select( 'id' , 'name' )->where( 'name' , 'LIKE' , '%' . $request->name . '%' ) + ->when( $medical_center_id , function ( $query ) use ( $medical_center_id ) { + $query->where( 'medical_center_id' , $medical_center_id ); + } ) + ->when( $role , function ( $query ) use ( $role ) { + $query->role( $role ); + } ) + ->get(); + return MessageResponse::data( $users ); } } diff --git a/app/Http/Requests/UpdateInfoUserRequest.php b/app/Http/Requests/UpdateInfoUserRequest.php new file mode 100644 index 00000000..e0588a79 --- /dev/null +++ b/app/Http/Requests/UpdateInfoUserRequest.php @@ -0,0 +1,22 @@ +check(); + } + + public function rules() + { + return [ + 'name' => 'required|string|max:255' , + 'email' => 'nullable|email' + ]; + + } +} diff --git a/app/TestResult.php b/app/TestResult.php index d0e72512..20487334 100644 --- a/app/TestResult.php +++ b/app/TestResult.php @@ -11,7 +11,7 @@ class TestResult extends Model implements HasMedia { use HasMediaTrait; - public $fillable = ['result','verified','test_type_id','user_id','device_id', 'cycle_number', 'date']; + public $fillable = [ 'result', 'verified', 'test_type_id', 'user_id', 'device_id', 'cycle_number', 'date']; public function test_type() {