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\Http\Resources\UserDetailsReportingResource;
6use Illuminate\Support\Facades\Auth;
7use App\Http\Models\Admin\UserDetailsColumnSetting;
8use App\Helpers\Constants;
9use Illuminate\Http\Request;
10
11class ReportingGetColumnsRequest
12{
13    /**
14     * Execute the action to get reporting columns.
15     *
16     * @param Request $request
17     * @return array
18     */
19    public function execute(Request $request)
20    {
21        $user = Auth::user();
22
23        $default_columns = collect([
24            [
25                "key" => "first_name",
26                "value" => "First Name",
27                "checked" => true,
28            ],
29            [
30                "key" => "last_name",
31                "value" => "Last Name",
32                "checked" => true,
33            ],
34            [
35                "key" => "email",
36                "value" => "Email",
37                "checked" => true,
38            ],
39        ]);
40
41        $columns = UserDetailsColumnSetting::where("user_id", $user->id)->get();
42
43        if ($columns->isEmpty()) {
44            $columns = collect(Constants::ADMIN_CENTER_USERS_TABLE_REPORTING_TABLE_HEADERS);
45        } else {
46            $columns = UserDetailsReportingResource::collection($columns);
47            $columns = array_merge($default_columns->toArray(), $columns->toArray($request));
48        }
49
50        return $columns;
51    }
52}