Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 29 |
|
0.00% |
0 / 1 |
CRAP | |
0.00% |
0 / 1 |
ReportingActiveUsersRequest | |
0.00% |
0 / 29 |
|
0.00% |
0 / 1 |
20 | |
0.00% |
0 / 1 |
execute | |
0.00% |
0 / 29 |
|
0.00% |
0 / 1 |
20 |
1 | <?php |
2 | |
3 | namespace App\Actions; |
4 | |
5 | use App\DTO\ReportingActiveUsersRequestDTO; |
6 | use App\Http\Models\Auth\User; |
7 | use App\Http\Models\HubspotProperties; |
8 | use App\Http\Models\UserInfo; |
9 | use Carbon\Carbon; |
10 | |
11 | class ReportingActiveUsersRequest |
12 | { |
13 | /** |
14 | * Execute the action to get active and inactive users. |
15 | * |
16 | * @param ReportingActiveUsersRequestDTO $filter |
17 | * @return array |
18 | */ |
19 | public function execute(ReportingActiveUsersRequestDTO $filter) |
20 | { |
21 | $users = UserInfo::select([ |
22 | "user_id", |
23 | "first_name", |
24 | "last_name", |
25 | "company_group_id", |
26 | "company_id", |
27 | "deleted_at", |
28 | "deactivated_at", |
29 | "status", |
30 | "user_created_at", |
31 | "avatar" |
32 | ]); |
33 | |
34 | // Filter by user IDs, group IDs, and subgroup IDs |
35 | $user_ids = array_filter(explode(",", $filter->user_ids ?? "")); |
36 | $group_ids = array_filter(explode(",", $filter->group_ids ?? "")); |
37 | $subgroup_ids = array_filter(explode(",", $filter->subgroup_ids ?? "")); |
38 | |
39 | if (!empty($user_ids)) { |
40 | $users->whereIn("user_id", $user_ids); |
41 | } |
42 | if (!empty($group_ids)) { |
43 | $users->whereIn("company_group_id", $group_ids); |
44 | } |
45 | if (!empty($subgroup_ids)) { |
46 | $users->whereIn("company_group_id", $subgroup_ids); |
47 | } |
48 | |
49 | $active_users_count = $users->where('status', 'Active')->orWhereNull('status')->count(); |
50 | $inactive_users_count = $users->where('status', "!=", 'Active')->whereNotNull('status')->count(); |
51 | |
52 | return [ |
53 | 'active_users' => $active_users_count, |
54 | 'inactive_users' => $inactive_users_count, |
55 | 'with_extension_installed' => $users->where('is_any_extension_installed', true)->count(), |
56 | 'with_extension_uninstalled' => $users->where('is_any_extension_uninstalled', true)->count(), |
57 | ]; |
58 | } |
59 | } |