Passed
Push — master ( e7e3c4...d0e289 )
by Rogier
01:26
created

AccountData::fromResponse()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 13
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 10
dl 0
loc 13
rs 9.9332
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
namespace Rogierw\RwAcme\DTO;
4
5
use Rogierw\RwAcme\Http\Response;
6
use Rogierw\RwAcme\Support\Arr;
7
use Rogierw\RwAcme\Support\Url;
8
use Spatie\DataTransferObject\DataTransferObject;
9
10
class AccountData extends DataTransferObject
11
{
12
    public $id;
13
    public $url;
14
    public $key;
15
    public $status;
16
    public $contact;
17
    public $agreement;
18
    public $initialIp;
19
    public $createdAt;
20
21
    public static function fromResponse(Response $response): self
22
    {
23
        $url = trim(Arr::get($response->getRawHeaders(), 'Location', ''));
24
25
        return new self([
26
            'id'        => Url::extractId($url),
27
            'url'       => $url,
28
            'key'       => $response->getBody()['key'],
29
            'status'    => $response->getBody()['status'],
30
            'contact'   => $response->getBody()['contact'],
31
            'agreement' => $response->getBody()['agreement'] ?? '',
32
            'initialIp' => $response->getBody()['initialIp'],
33
            'createdAt' => $response->getBody()['createdAt'],
34
        ]);
35
    }
36
}
37