fix update info

This commit is contained in:
mahdi purHosseini
2024-01-08 17:24:20 +03:30
parent fa5c7bb6e1
commit 761aec8b69
3 changed files with 118 additions and 100 deletions
+27 -31
View File
@@ -2,11 +2,14 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Http\Requests\UpdateInfoUserRequest;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Http\Requests\StoreUserRequest; use App\Http\Requests\StoreUserRequest;
use App\MedicalCenter; use App\MedicalCenter;
use App\User; use App\User;
use App\Message; use App\Message;
use Illuminate\Support\Facades\DB;
use Packages\Messaging\src\Facades\MessageResponse;
class UserController extends Controller class UserController extends Controller
{ {
@@ -15,7 +18,7 @@ class UserController extends Controller
{ {
$user = auth( 'api' )->user(); $user = auth( 'api' )->user();
if ( $user->cant( 'list' , User::class ) ) { if ( $user->cant( 'list' , User::class ) ) {
return \MessageResponse::error(trans('messages.access_denied')); return MessageResponse::error( trans( 'messages.access_denied' ) );
} }
if ( $user->hasRole( 'Supervisor' ) ) { if ( $user->hasRole( 'Supervisor' ) ) {
@@ -28,8 +31,7 @@ class UserController extends Controller
$Users = User::when( $request->has( 'name' ) && $request->name , function ( $query ) use ( $request ) { $Users = User::when( $request->has( 'name' ) && $request->name , function ( $query ) use ( $request ) {
$query->where( 'name' , 'LIKE' , '%' . $request->name . '%' ); $query->where( 'name' , 'LIKE' , '%' . $request->name . '%' );
} ) } )
->when(($request->has('fromPicker') && $request->fromPicker) || ($request->has('upToPicker') && $request->upToPicker), function ($query) use ($request) ->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' ); $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' ); $upTo = ( $request->upToPicker ) ? date( $request->upToPicker . ' 23:59:59' ) : date( 'Y-m-d' . ' 23:59:59' );
return $query->whereBetween( 'created_at' , [ $from , $upTo ] ); return $query->whereBetween( 'created_at' , [ $from , $upTo ] );
@@ -45,13 +47,13 @@ class UserController extends Controller
} ) } )
->with( [ 'medical_center' , 'roles' ] )->paginate( 10 ); ->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 ) ) { if ( auth( 'api' )->user()->cant( 'store' , User::class ) ) {
return \MessageResponse::error(trans('messages.failed')); return MessageResponse::error( trans( 'messages.failed' ) );
} }
$UserData = [ $UserData = [
'name' => $request->name , 'name' => $request->name ,
@@ -62,18 +64,18 @@ class UserController extends Controller
'password' => bcrypt( $request->password ) , 'password' => bcrypt( $request->password ) ,
]; ];
User::create( $UserData ); User::create( $UserData );
return \MessageResponse::success(trans('messages.success')); 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 ) ) { if ( auth( 'api' )->user()->cant( 'update' , $User ) ) {
return \MessageResponse::error(trans('messages.failed')); return MessageResponse::error( trans( 'messages.failed' ) );
} }
$UserData = [ $UserData = [
'name' => $request->name , 'name' => $request->name ,
@@ -83,23 +85,23 @@ class UserController extends Controller
'password' => bcrypt( $request->password ) , 'password' => bcrypt( $request->password ) ,
]; ];
$User->update( $UserData ); $User->update( $UserData );
return \MessageResponse::success(trans('messages.success')); return MessageResponse::success( trans( 'messages.success' ) );
} }
public function destroy( User $User ) public function destroy( User $User )
{ {
if ( auth( 'api' )->user()->cant( 'delete' , $User ) ) { if ( auth( 'api' )->user()->cant( 'delete' , $User ) ) {
return \MessageResponse::error(trans('messages.access_denied')); return MessageResponse::error( trans( 'messages.access_denied' ) );
} }
$User->delete(); $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(); $user = auth( 'api' )->user();
if ( auth( 'api' )->user()->cant( 'getByMedicalCenter' , $MedicalCenter ) ) { if ( auth( 'api' )->user()->cant( 'getByMedicalCenter' , $MedicalCenter ) ) {
return \MessageResponse::error(trans('messages.failed')); return MessageResponse::error( trans( 'messages.failed' ) );
} }
$MedicalCenter = $MedicalCenter->load( [ 'users' => function ( $query ) use ( $user ) { $MedicalCenter = $MedicalCenter->load( [ 'users' => function ( $query ) use ( $user ) {
if ( $user->hasRole( 'User' ) ) { if ( $user->hasRole( 'User' ) ) {
@@ -108,66 +110,60 @@ class UserController extends Controller
return $query->select( [ 'id' , 'medical_center_id' , 'name' , 'cell_number' , 'status' ] ); return $query->select( [ 'id' , 'medical_center_id' , 'name' , 'cell_number' , 'status' ] );
} }
} , 'users.roles' ] ); } , 'users.roles' ] );
return \MessageResponse::data($MedicalCenter); return MessageResponse::data( $MedicalCenter );
} }
public function changeStatus( User $User ) public function changeStatus( User $User )
{ {
if ( auth( 'api' )->user()->cant( 'changeStatus' , User::class ) ) { if ( auth( 'api' )->user()->cant( 'changeStatus' , User::class ) ) {
return \MessageResponse::error(trans('messages.access_denied')); return MessageResponse::error( trans( 'messages.access_denied' ) );
} }
if ( $User->status == 'Active' ) { if ( $User->status == 'Active' ) {
$User->status = 'Suspended'; $User->status = 'Suspended';
$tokens = \DB::table('oauth_access_tokens')->where('user_id', $User->id); $tokens = DB::table( 'oauth_access_tokens' )->where( 'user_id' , $User->id );
foreach ( $tokens->get() as $token ) { foreach ( $tokens->get() as $token ) {
\DB::table('oauth_refresh_tokens')->where('access_token_id', $token->id)->delete(); DB::table( 'oauth_refresh_tokens' )->where( 'access_token_id' , $token->id )->delete();
} }
$tokens->delete(); $tokens->delete();
} else { } else {
$User->status = 'Active'; $User->status = 'Active';
} }
$User->save(); $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 ) ) { if ( auth( 'api' )->user()->cant( 'changeRole' , User::class ) ) {
return \MessageResponse::error(trans('messages.access_denied')); return MessageResponse::error( trans( 'messages.access_denied' ) );
} }
$User->syncRoles( $request->roles ); $User->syncRoles( $request->roles );
return \MessageResponse::data($User); return MessageResponse::data( $User );
} }
public function updateInfo(Request $request) public function updateInfo( UpdateInfoUserRequest $request )
{ {
auth('api')->user()->update($request->all()); auth( 'api' )->user()->update( $request->validated() );
return \MessageResponse::success(trans('messages.success')); return MessageResponse::success( trans( 'messages.success' ) );
} }
public function getInfo() public function getInfo()
{ {
$user = auth( 'api' )->user(); $user = auth( 'api' )->user();
$user->load( 'medical_center' ); $user->load( 'medical_center' );
return \MessageResponse::data([ 'user' => $user, 'roles' => auth('api')->user()->getRoleNames() ]); return MessageResponse::data( [ 'user' => $user , 'roles' => auth( 'api' )->user()->getRoleNames() ] );
} }
public function getMessages() public function getMessages()
{ {
$User = auth( 'api' )->user(); $User = auth( 'api' )->user();
// $ReceivedMessages = $User->messagesReceived;
// $SentMessages = $User->messagesSent;
$SentMessages = Message::with( 'recipient_user' )->where( 'sender_user_id' , $User->id )->get(); $SentMessages = Message::with( 'recipient_user' )->where( 'sender_user_id' , $User->id )->get();
$ReceivedMessages = Message::with( 'sender_user' )->where( 'recipient_user_id' , $User->id )->get(); $ReceivedMessages = Message::with( 'sender_user' )->where( 'recipient_user_id' , $User->id )->get();
return MessageResponse::data( [ 'ReceivedMessages' => $ReceivedMessages , 'SentMessages' => $SentMessages ] );
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; $role = null;
$medical_center_id = null; $medical_center_id = null;
@@ -187,7 +183,7 @@ class UserController extends Controller
$query->role( $role ); $query->role( $role );
} ) } )
->get(); ->get();
return \MessageResponse::data($users); return MessageResponse::data( $users );
} }
} }
@@ -0,0 +1,22 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class UpdateInfoUserRequest extends FormRequest
{
public function authorize()
{
return auth( 'api' )->check();
}
public function rules()
{
return [
'name' => 'required|string|max:255' ,
'email' => 'nullable|email'
];
}
}