Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 21
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
ShortcutCategoryPositionController
0.00% covered (danger)
0.00%
0 / 21
0.00% covered (danger)
0.00%
0 / 1
30
0.00% covered (danger)
0.00%
0 / 1
 update
0.00% covered (danger)
0.00%
0 / 21
0.00% covered (danger)
0.00%
0 / 1
30
1<?php
2
3namespace App\Http\Controllers\v1;
4
5use App\Http\Controllers\Controller;
6use App\Http\Models\ShortcutCategoryPosition;
7use App\Http\Models\ShortcutSubCategoryLv1Position;
8use App\Http\Models\ShortcutSubCategoryLv2Position;
9use App\Http\Services\ShortcutCategoryPositionService;
10use App\Http\Services\ShortcutCategoryPositionServiceLv1;
11use App\Http\Services\ShortcutCategoryPositionServiceLv2;
12use Illuminate\Http\JsonResponse;
13use Illuminate\Http\Request;
14
15class ShortcutCategoryPositionController extends Controller
16{
17    public function update(Request $request): JsonResponse
18    {
19        $data = $request->validate([
20            'positions' => 'required|array',
21            'positions.*' => 'required|string',
22            'type' => 'string|nullable',
23        ]);
24
25        $userId = $request->user()->getKey();
26        $searchArray = ['user_id' => $userId];
27
28        if ($request['type'] && $request['type'] == 'categorylv1') {
29            unset($data['type']);
30            ShortcutSubCategoryLv1Position::where($searchArray)->update($data);
31            $obj = new ShortcutCategoryPositionServiceLv1;
32            $obj->updateCategorySequence($data['positions']);
33        } elseif ($request['type'] && $request['type'] == 'categorylv2') {
34            unset($data['type']);
35
36            ShortcutSubCategoryLv2Position::where($searchArray)->update($data);
37            $obj = new ShortcutCategoryPositionServiceLv2;
38            $obj->updateCategorySequence($data['positions']);
39        } else {
40            ShortcutCategoryPosition::where($searchArray)->update($data);
41            $obj = new ShortcutCategoryPositionService;
42            $obj->updateCategorySequence($data['positions']);
43        }
44
45        return response()->json(true);
46    }
47}