Passed
Push — master ( 847635...41ee62 )
by Morten Poul
03:47
created

PaginatorResponse::setStatusCode()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 1
dl 0
loc 5
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
    /** @var int */
16
    protected $statusCode = 200;
17
18
    public function __construct(
19
        LengthAwarePaginator $paginator,
20
        ?string $resourceClass = null
21
    ) {
22
        $this->paginator = $paginator;
23
        $this->resourceClass = $resourceClass;
24
    }
25
26
    public function setStatusCode(int $statusCode): self
27
    {
28
        $this->statusCode = $statusCode;
29
30
        return $this;
31
    }
32
33
    public function toResponse($request)
34
    {
35
        if (empty($this->resourceClass)) {
36
            return $this->paginator;
37
        }
38
39
        return $this->resourceClass::collection($this->paginator)
40
            ->toResponse($request)
41
            ->setStatusCode($this->statusCode);
42
    }
43
}
44