1 | <?php |
||||||
2 | |||||||
3 | namespace VGirol\JsonApi\Controllers; |
||||||
4 | |||||||
5 | use Illuminate\Http\JsonResponse; |
||||||
6 | use Illuminate\Http\Request; |
||||||
7 | use Illuminate\Support\Facades\DB; |
||||||
8 | use VGirol\JsonApi\Resources\ResourceObject; |
||||||
9 | use VGirol\JsonApiConstant\Members; |
||||||
10 | |||||||
11 | trait CanUpdateResource |
||||||
12 | { |
||||||
13 | /** |
||||||
14 | * Undocumented function |
||||||
15 | * |
||||||
16 | * @param Request $request |
||||||
17 | * @param string $routeKey |
||||||
18 | * @param mixed $id |
||||||
19 | * |
||||||
20 | * @return JsonResponse |
||||||
21 | */ |
||||||
22 | protected function updateAndReply(Request $request, string $routeKey, $id): JsonResponse |
||||||
23 | { |
||||||
24 | // Creates and validate specific FormRequest |
||||||
25 | $request = $this->validateData($request); |
||||||
0 ignored issues
–
show
Bug
introduced
by
![]() |
|||||||
26 | |||||||
27 | // Updates resource |
||||||
28 | $resource = DB::transaction(function () use ($request, $routeKey, $id) { |
||||||
29 | return $this->updateSingle($request, $routeKey, $id); |
||||||
30 | }, config('jsonapi.transactionAttempts')); |
||||||
31 | |||||||
32 | // Fill response's content |
||||||
33 | $content = $resource->getContent($request); |
||||||
34 | $response = ($content === null) ? $this->responseService->noContent() : $this->responseService->ok($content); |
||||||
35 | |||||||
36 | return $response; |
||||||
37 | } |
||||||
38 | |||||||
39 | /** |
||||||
40 | * Update a single resource in database |
||||||
41 | * |
||||||
42 | * @param Request $request |
||||||
43 | * @param int $id |
||||||
44 | * |
||||||
45 | * @return ResourceObject |
||||||
46 | */ |
||||||
47 | protected function updateSingle(Request $request, $routeKey, $id) |
||||||
48 | { |
||||||
49 | // Gets the data |
||||||
50 | // $data = $request->validated(Members::DATA); |
||||||
51 | $data = $request->input(Members::DATA); |
||||||
0 ignored issues
–
show
The method
input() does not exist on Illuminate\Http\Request .
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces. This is most likely a typographical error or the method has been renamed. ![]() |
|||||||
52 | |||||||
53 | // Update resource |
||||||
54 | $model = $this->storeService->updateModel($data, $id, $routeKey); |
||||||
55 | |||||||
56 | // Looks for relationships |
||||||
57 | $this->relationshipService->updateAll($data, $model, true); |
||||||
58 | |||||||
59 | // Get model for response (with required include or fields) |
||||||
60 | $requiredModel = $this->fetchService->getRequiredModel($request, $id, $model); |
||||||
61 | |||||||
62 | // Creates resource |
||||||
63 | $resource = $this->exportService->exportSingleResource($requiredModel); |
||||||
64 | |||||||
65 | return $resource; |
||||||
66 | } |
||||||
67 | } |
||||||
68 |