mirror of
https://github.com/brunofontes/shareit.git
synced 2025-11-15 07:50:54 -03:00
Refactoring
Including some use for classes; REfactoring the HomeController, to make it cleaner and avoid repeating code.
This commit is contained in:
@@ -6,6 +6,8 @@ use \App\User;
|
||||
|
||||
class HomeController extends Controller
|
||||
{
|
||||
protected $activeUsers = [];
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
@@ -16,6 +18,46 @@ class HomeController extends Controller
|
||||
$this->middleware('auth');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Show the application dashboard.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$items = User::loggedIn()->items()->with('users')->get();
|
||||
|
||||
foreach ($items as $item) {
|
||||
$this->getUsername($item->users, $item->used_by);
|
||||
$this->getUsername($item->users, $item->waiting_user_id);
|
||||
}
|
||||
|
||||
$products = $items
|
||||
->sortBy('product.name', SORT_NATURAL | SORT_FLAG_CASE)
|
||||
->groupBy('product.name');
|
||||
|
||||
return view(
|
||||
'home',
|
||||
['products' => $products, 'users' => $this->activeUsers]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the username from an specified user id.
|
||||
*
|
||||
* @param object $itemUsers Array with IDs and usernames
|
||||
* @param int $id The user id to search for
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function getUsername(object $itemUsers, ?int $id)
|
||||
{
|
||||
if ($id && !isset($this->activeUsers[$id])) {
|
||||
$this->activeUsers[$id] = $this->findName($itemUsers, $id);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a name from a specific id in a array
|
||||
*
|
||||
@@ -32,41 +74,4 @@ class HomeController extends Controller
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the user_id alreay exists on $users array.
|
||||
*
|
||||
* @param array $users The array with users
|
||||
* @param int $user_id The user_id to try to find on array
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function isNewUser($users, $user_id)
|
||||
{
|
||||
return ($user_id && !isset($users[$user_id]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the application dashboard.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$users = [];
|
||||
$items = User::loggedIn()->items()->with('users')->get();
|
||||
|
||||
foreach ($items as $item) {
|
||||
if ($this->isNewUser($users, $item->used_by)) {
|
||||
$users[$item->used_by] = $this->findName($item->users, $item->used_by);
|
||||
}
|
||||
|
||||
if ($this->isNewUser($users, $item->waiting_user_id)) {
|
||||
$users[$item->waiting_user_id] = $this->findName($item->users, $item->waiting_user_id);
|
||||
}
|
||||
}
|
||||
|
||||
$products = $items->sortBy('product.name', SORT_NATURAL | SORT_FLAG_CASE)->groupBy('product.name');
|
||||
return view('home', compact('products', 'users'));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user