Create   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
eloc 16
dl 0
loc 34
ccs 0
cts 11
cp 0
rs 10
c 1
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 2 1
A getResponse() 0 21 1
1
<?php
2
3
namespace LE_ACME2\Request\Account;
4
5
use LE_ACME2\Request\AbstractRequest;
6
use LE_ACME2\Response;
7
8
use LE_ACME2\Connector;
9
use LE_ACME2\Cache;
10
use LE_ACME2\Utilities;
11
use LE_ACME2\Exception;
12
13
use LE_ACME2\Account;
14
15
class Create extends AbstractRequest {
16
    
17
    protected $_account;
18
    
19
    public function __construct(Account $account) {
20
        $this->_account = $account;
21
    }
22
23
    /**
24
     * @throws Exception\InvalidResponse
25
     * @throws Exception\RateLimitReached
26
     * @throws Exception\ServiceUnavailable
27
     */
28
    public function getResponse() : Response\Account\Create {
29
30
        $payload = [
31
            'contact' => $this->_buildContactPayload($this->_account->getEmail()),
32
            'termsOfServiceAgreed' => true,
33
        ];
34
        
35
        $jwk = Utilities\RequestSigner::JWKString(
36
            $payload,
37
            Cache\DirectoryResponse::getInstance()->get()->getNewAccount(),
0 ignored issues
show
Bug introduced by
It seems like get() must be provided by classes using this trait. How about adding it as abstract method to this trait? ( Ignorable by Annotation )

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

37
            Cache\DirectoryResponse::getInstance()->/** @scrutinizer ignore-call */ get()->getNewAccount(),
Loading history...
38
            Cache\NewNonceResponse::getInstance()->get()->getNonce(),
39
            $this->_account->getKeyDirectoryPath()
40
        );
41
        
42
        $result = Connector\Connector::getInstance()->request(
0 ignored issues
show
Bug introduced by
It seems like request() must be provided by classes using this trait. How about adding it as abstract method to this trait? ( Ignorable by Annotation )

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

42
        $result = Connector\Connector::getInstance()->/** @scrutinizer ignore-call */ request(
Loading history...
43
            Connector\Connector::METHOD_POST,
44
            Cache\DirectoryResponse::getInstance()->get()->getNewAccount(),
45
            $jwk
46
        );
47
        
48
        return new Response\Account\Create($result);
49
    }
50
}