Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 24
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
ReportingGetColumnsRequest
0.00% covered (danger)
0.00%
0 / 24
0.00% covered (danger)
0.00%
0 / 1
6
0.00% covered (danger)
0.00%
0 / 1
 execute
0.00% covered (danger)
0.00%
0 / 24
0.00% covered (danger)
0.00%
0 / 1
6
1<?php
2
3namespace App\Actions;
4
5use App\Helpers\Constants;
6use App\Http\Models\Admin\UserDetailsColumnSetting;
7use App\Http\Resources\UserDetailsReportingResource;
8use Illuminate\Http\Request;
9use Illuminate\Support\Facades\Auth;
10
11class ReportingGetColumnsRequest
12{
13    /**
14     * Execute the action to get reporting columns.
15     *
16     * @return array
17     */
18    public function execute(Request $request)
19    {
20        $user = Auth::user();
21
22        $default_columns = collect([
23            [
24                'key' => 'first_name',
25                'value' => 'First Name',
26                'checked' => true,
27            ],
28            [
29                'key' => 'last_name',
30                'value' => 'Last Name',
31                'checked' => true,
32            ],
33            [
34                'key' => 'email',
35                'value' => 'Email',
36                'checked' => true,
37            ],
38        ]);
39
40        $columns = UserDetailsColumnSetting::where('user_id', $user->id)->get();
41
42        if ($columns->isEmpty()) {
43            $columns = collect(Constants::ADMIN_CENTER_USERS_TABLE_REPORTING_TABLE_HEADERS);
44        } else {
45            $columns = UserDetailsReportingResource::collection($columns);
46            $columns = array_merge($default_columns->toArray(), $columns->toArray($request));
47        }
48
49        return $columns;
50    }
51}