Passed
Push — task/applicant-skill-save-api ( 2ebd5d...fa7a9c )
by
unknown
06:31 queued 10s
created

ApplicationReviewController   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 25
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
eloc 10
c 1
b 0
f 0
dl 0
loc 25
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A batchUpdate() 0 16 2
1
<?php
2
3
namespace App\Http\Controllers\Api;
4
5
use App\Http\Controllers\Controller;
6
use App\Http\Requests\BatchUpdateApplicationReview as BatchUpdateRequest;
7
use App\Models\ApplicationReview;
8
use Illuminate\Http\Resources\Json\JsonResource;
9
use Illuminate\Support\Facades\DB;
10
11
class ApplicationReviewController extends Controller
12
{
13
    /**
14
     * Update multiple Application Review objects.
15
     *
16
     * @param BatchUpdateRequest $request Incoming request object.
17
     *
18
     * @return mixed
19
     */
20
    public function batchUpdate(BatchUpdateRequest $request)
21
    {
22
        // Validation rules and auth capabilities handled in BatchUpdateApplicationReview.
23
        $validatedRequest = $request->validated();
24
        $inputData = collect($validatedRequest);
0 ignored issues
show
Bug introduced by
The function collect was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

24
        $inputData = /** @scrutinizer ignore-call */ collect($validatedRequest);
Loading history...
25
        $applicationReviews = ApplicationReview::whereIn('id', $inputData->pluck('id')->all())->get();
26
27
        DB::transaction(function () use ($applicationReviews, $inputData) {
28
            foreach ($applicationReviews as $applicationReview) {
29
                $updatedApplicationReview = $inputData->firstWhere('id', $applicationReview->id);
30
                $applicationReview->fill($updatedApplicationReview);
31
                $applicationReview->save();
32
            }
33
        }, 3); // Retry transaction up to three times if deadlock occurs.
34
35
        return JsonResource::collection($applicationReviews->fresh());
36
    }
37
}
38