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 | } |