Merge pull request 'app/Http/Controllers/UserController.php' (#11) from feature/fix-getByMedicalCenter into master

Reviewed-on: https://git.willaspace.com/external-projects/cssd-back/pulls/11
This commit is contained in:
saeid_01
2024-05-05 07:44:04 +00:00
+21 -7
View File
@@ -162,16 +162,30 @@ class UserController extends Controller
public function getByMedicalCenter( MedicalCenter $MedicalCenter )
{
$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 );
} else {
return $query->select( [ 'id' , 'medical_center_id' , 'name' , 'cell_number' , 'status' ] );
}
} , 'users.roles' ] );
if ($user->hasRole('Admin')){
$MedicalCenter = MedicalCenter::with(['users' => function ($query) {
$query->select('id', 'medical_center_id', 'name', 'cell_number', 'status')
->whereDoesntHave('roles', function ($roleQuery) {
$roleQuery->where('name', 'Admin');
});
}, 'users.roles'])->get();
}else{
$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' ] )
->whereDoesntHave('roles', function ($roleQuery) {
$roleQuery->where('name', 'Admin');
});
}
} , 'users.roles' ] );
}
return MessageResponse::data( $MedicalCenter );
}