Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 89 |
|
0.00% |
0 / 2 |
CRAP | |
0.00% |
0 / 1 |
ShortcutCategoryFormRequest | |
0.00% |
0 / 89 |
|
0.00% |
0 / 2 |
90 | |
0.00% |
0 / 1 |
authorize | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
rules | |
0.00% |
0 / 88 |
|
0.00% |
0 / 1 |
72 |
1 | <?php |
2 | |
3 | namespace App\Http\Requests; |
4 | |
5 | use Illuminate\Foundation\Http\FormRequest; |
6 | use Illuminate\Validation\Rule; |
7 | |
8 | class ShortcutCategoryFormRequest extends FormRequest |
9 | { |
10 | public function authorize(): bool |
11 | { |
12 | return true; |
13 | } |
14 | |
15 | public function rules(): array |
16 | { |
17 | $rules = []; |
18 | switch ($this->method()) { |
19 | case 'POST': |
20 | $rules = [ |
21 | 'name' => [ |
22 | 'required', |
23 | Rule::unique('shortcut_categories')->where(function ($query) { |
24 | return $query->where([ |
25 | ['name', $this->name], |
26 | ['user_id', request()->user()->id], |
27 | ]); |
28 | }), |
29 | ], |
30 | 'category_id' => 'exists:shortcut_categories,_id', |
31 | 'sub_categories_lv1' => 'exists:shortcut_sub_categories_lv1,_id', |
32 | ]; |
33 | |
34 | if ($this->category_id) { |
35 | $rules['name'] = [ |
36 | 'required', |
37 | Rule::unique('shortcut_sub_categories_lv1')->where(function ($query) { |
38 | return $query->where([ |
39 | ['name', $this->name], |
40 | ['user_id', request()->user()->id], |
41 | ['category_id', $this->category_id], |
42 | ]); |
43 | }), |
44 | ]; |
45 | } |
46 | |
47 | if ($this->sub_categories_lv1) { |
48 | $rules['name'] = [ |
49 | 'required', |
50 | Rule::unique('shortcut_sub_categories_lv2')->where(function ($query) { |
51 | return $query->where([ |
52 | ['name', $this->name], |
53 | ['user_id', request()->user()->id], |
54 | ['sub_categories_lv1', $this->sub_categories_lv1], |
55 | ]); |
56 | }), |
57 | ]; |
58 | } |
59 | |
60 | break; |
61 | |
62 | case 'PUT': |
63 | $rules = [ |
64 | 'name' => [ |
65 | 'required', |
66 | Rule::unique('shortcut_categories')->where(function ($query) { |
67 | return $query->where([ |
68 | ['name', $this->name], |
69 | ['user_id', request()->user()->id], |
70 | ['_id', '!=', $this->id], |
71 | ]); |
72 | }), |
73 | ], |
74 | 'category_id' => 'exists:shortcut_categories,_id', |
75 | 'sub_categories_lv1' => 'exists:shortcut_sub_categories_lv1,_id', |
76 | 'source_category_type' => 'in:category,sub_categories_lv1,sub_categories_lv2' |
77 | ]; |
78 | |
79 | if ($this->category_id) { |
80 | $rules['name'] = [ |
81 | 'required', |
82 | Rule::unique('shortcut_sub_categories_lv1')->where(function ($query) { |
83 | return $query->where([ |
84 | ['name', $this->name], |
85 | ['user_id', request()->user()->id], |
86 | ['category_id', $this->category_id], |
87 | ['_id', '!=', $this->id], |
88 | ]); |
89 | }), |
90 | ]; |
91 | } |
92 | |
93 | if ($this->sub_categories_lv1) { |
94 | $rules['name'] = [ |
95 | 'required', |
96 | Rule::unique('shortcut_sub_categories_lv2')->where(function ($query) { |
97 | return $query->where([ |
98 | ['name', $this->name], |
99 | ['user_id', request()->user()->id], |
100 | ['sub_categories_lv1', $this->sub_categories_lv1], |
101 | ['_id', '!=', $this->id], |
102 | ]); |
103 | }), |
104 | ]; |
105 | } |
106 | |
107 | break; |
108 | |
109 | case 'DELETE': |
110 | $rules = [ |
111 | 'category_type' => 'required|in:category,sub_categories_lv1,sub_categories_lv2', |
112 | 'type' => 'in:move,remove', |
113 | 'category_id' => 'exists:shortcut_categories,_id' |
114 | ]; |
115 | break; |
116 | } |
117 | |
118 | return $rules; |
119 | } |
120 | } |