Passed
Push — master ( 41ee62...d0e25f )
by Morten Poul
02:31
created

PaginatorResponse::toResponse()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 11
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 7
nc 2
nop 1
dl 0
loc 11
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Signifly\Responder\Responses;
4
5
use Illuminate\Contracts\Pagination\LengthAwarePaginator;
6
7
class PaginatorResponse extends Response
8
{
9
    /** @var \Illuminate\Contracts\Pagination\LengthAwarePaginator */
10
    protected $paginator;
11
12
    /** @var string */
13
    protected $resourceClass;
14
15
    public function __construct(
16
        LengthAwarePaginator $paginator,
17
        ?string $resourceClass = null
18
    ) {
19
        $this->paginator = $paginator;
20
        $this->resourceClass = $resourceClass;
21
    }
22
23
    public function toResponse($request)
24
    {
25
        if (empty($this->resourceClass)) {
26
            return (new DefaultResponse($this->paginator))
27
                ->setStatusCode($this->statusCode)
28
                ->toResponse($request);
29
        }
30
31
        return $this->resourceClass::collection($this->paginator)
32
            ->toResponse($request)
33
            ->setStatusCode($this->statusCode);
34
    }
35
}
36