Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 37
0.00% covered (danger)
0.00%
0 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
ClientManagementUsersExport
0.00% covered (danger)
0.00%
0 / 37
0.00% covered (danger)
0.00%
0 / 3
30
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 array
0.00% covered (danger)
0.00%
0 / 22
0.00% covered (danger)
0.00%
0 / 1
12
 headings
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace App\Exports;
4
5use App\Http\Models\Auth\User;
6use Vitorccs\LaravelCsv\Concerns\FromArray;
7use Vitorccs\LaravelCsv\Concerns\Exportable;
8use App\Http\Models\Admin\AdminUserInvitation;
9use Vitorccs\LaravelCsv\Concerns\WithHeadings;
10use App\Http\Resources\ClientManagementUsersExportResource;
11
12class ClientManagementUsersExport implements FromArray, WithHeadings
13{
14    use Exportable;
15
16    public function __construct(public array $userIds = [], public bool $deactivated = false)
17    { }
18
19    public function array(): array
20    {
21        $usersQuery = User::select([
22            "first_name",
23            "last_name",
24            "email",
25            "role",
26            "company_id",
27            "company_group_id",
28            "status",
29            "created_at",
30            "deleted_at",
31            "deactivated_at",
32            "avatar"
33        ])->whereIn('_id', $this->userIds);
34
35        if ($this->deactivated) {
36            $usersQuery = $usersQuery->onlyTrashed();
37        }
38
39        $users = $usersQuery->latest()->get();
40
41        if (!$this->deactivated) {
42          $invitations = AdminUserInvitation::whereNotIn("email", $users->pluck("email"))->whereIn('_id', $this->userIds)->latest()->get();
43          $users = $users->concat($invitations)->sortByDesc('created_at');
44        }
45
46        $users = ClientManagementUsersExportResource::collection($users);
47
48        // Create an instance of the current request
49        $request = request();
50
51        return $users->toArray($request); // Pass the request instance
52    }
53
54    public function headings(): array
55    {
56        return [
57            'First Name' ,
58            'Last Name' ,
59            'Email' ,
60            'Company' ,
61            'Installed Extension?',
62            'Role',
63            'Group',
64            'Subgroup',
65            'License Type',
66            'Status',
67            'Created At',
68            'Status Date'
69        ];
70    }
71}