Completed
Push — master ( d244a1...8fd770 )
by Anton
01:17
created

CollectResponse::toJson()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 9
rs 9.9666
c 0
b 0
f 0
cc 2
nc 2
nop 0
1
<?php
2
3
/*
4
 * This file is part of Laravel Paket.
5
 *
6
 * (c) Anton Komarev <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
declare(strict_types=1);
13
14
namespace Cog\Laravel\Paket\Http\Controllers\Api\Jobs;
15
16
use Illuminate\Contracts\Support\Responsable as ResponsableContract;
17
use Illuminate\Http\JsonResponse;
18
19
final class CollectResponse implements ResponsableContract
20
{
21
    private $jobs;
22
23
    public function __construct(iterable $jobs)
24
    {
25
        $this->jobs = $jobs;
26
    }
27
28
    /**
29
     * Create an HTTP response that represents the object.
30
     *
31
     * @param  \Illuminate\Http\Request $request
32
     * @return \Symfony\Component\HttpFoundation\Response
33
     */
34
    public function toResponse($request)
35
    {
36
        return $this->toJson();
37
    }
38
39
    private function toJson(): JsonResponse
40
    {
41
        $jobs = [];
42
        foreach ($this->jobs as $job) {
43
            $jobs[] = $job->toArray();
44
        }
45
46
        return response()->json($jobs);
47
    }
48
}
49