Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 20 |
|
0.00% |
0 / 3 |
CRAP | |
0.00% |
0 / 1 |
CopyTemplateRequest | |
0.00% |
0 / 20 |
|
0.00% |
0 / 3 |
42 | |
0.00% |
0 / 1 |
authorize | |
0.00% |
0 / 4 |
|
0.00% |
0 / 1 |
2 | |||
failedAuthorization | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
rules | |
0.00% |
0 / 15 |
|
0.00% |
0 / 1 |
20 |
1 | <?php |
2 | |
3 | namespace App\Http\Requests; |
4 | |
5 | use Illuminate\Auth\Access\AuthorizationException; |
6 | use Illuminate\Foundation\Http\FormRequest; |
7 | use Illuminate\Support\Facades\DB; |
8 | |
9 | class CopyTemplateRequest extends FormRequest |
10 | { |
11 | /** |
12 | * Determine if the user is authorized to make this request. |
13 | */ |
14 | public function authorize(): bool |
15 | { |
16 | return DB::table('shortcuts')->where([ |
17 | ['template_id', $this->template_id], |
18 | ['user_id', request()->user()->getKey()], |
19 | ])->doesntExist(); |
20 | } |
21 | |
22 | /** |
23 | * Handle a failed authorization attempt. |
24 | * |
25 | * |
26 | * @throws \Illuminate\Auth\Access\AuthorizationException |
27 | */ |
28 | protected function failedAuthorization(): void |
29 | { |
30 | throw new AuthorizationException('This flyplate has been added to your flycuts already'); |
31 | } |
32 | |
33 | /** |
34 | * Get the validation rules that apply to the request. |
35 | */ |
36 | public function rules(): array |
37 | { |
38 | $rules = [ |
39 | 'template_id' => 'required|string|exists:templates,_id', |
40 | 'category_id' => ['required'], |
41 | 'type' => 'required|string|in:category,sub_categories_lv1,sub_categories_lv2', |
42 | ]; |
43 | |
44 | switch ($this->type) { |
45 | case 'sub_categories_lv2': |
46 | array_push($rules['category_id'], 'exists:shortcut_sub_categories_lv2,_id'); |
47 | break; |
48 | case 'sub_categories_lv1': |
49 | array_push($rules['category_id'], 'exists:shortcut_sub_categories_lv1,_id'); |
50 | break; |
51 | |
52 | default: |
53 | array_push($rules['category_id'], 'exists:shortcut_categories,_id'); |
54 | break; |
55 | } |
56 | |
57 | return $rules; |
58 | } |
59 | } |