OnlineUsersCountComposer   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 5

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 3
lcom 0
cbo 5
dl 0
loc 42
ccs 0
cts 9
cp 0
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A compose() 0 4 1
A getOnlineUsers() 0 10 2
1
<?php namespace Arcanesoft\Auth\ViewComposers\Dashboard;
2
3
use Arcanesoft\Auth\Models\User;
4
use Arcanesoft\Auth\ViewComposers\ViewComposer;
5
use Carbon\Carbon;
6
use Illuminate\Contracts\View\View;
7
8
/**
9
 * Class     OnlineUsersCountComposer
10
 *
11
 * @package  Arcanesoft\Auth\ViewComposers\Dashboard
12
 * @author   ARCANEDEV <[email protected]>
13
 */
14
class OnlineUsersCountComposer extends ViewComposer
15
{
16
    /* -----------------------------------------------------------------
17
     |  Constants
18
     | -----------------------------------------------------------------
19
     */
20
    const VIEW = 'auth::admin._composers.dashboard.online-users-count-box';
21
22
    /* -----------------------------------------------------------------
23
     |  Main Methods
24
     | -----------------------------------------------------------------
25
     */
26
    /**
27
     * Compose the view.
28
     *
29
     * @param  \Illuminate\Contracts\View\View  $view
30
     */
31
    public function compose(View $view)
32
    {
33
        $view->with('onlineUsersCount', $this->getOnlineUsers()->count());
34
    }
35
36
    /* -----------------------------------------------------------------
37
     |  Other Methods
38
     | -----------------------------------------------------------------
39
     */
40
    /**
41
     * Get the online users.
42
     *
43
     * @return \Illuminate\Database\Eloquent\Collection
44
     */
45
    private function getOnlineUsers()
46
    {
47
        $date = Carbon::now()->subMinutes(
48
            config('arcanesoft.auth.track-activity.minutes', 5)
49
        );
50
51
        return $this->getCachedUsers()->filter(function (User $user) use ($date) {
52
            return ! is_null($user->last_activity) && $user->last_activity->gte($date);
53
        });
54
    }
55
}
56