Passed
Push — 1.x ( cbe161...65a285 )
by Pavel
01:59
created

MyAccountsEndpoint   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 25
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
eloc 7
c 1
b 0
f 0
dl 0
loc 25
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A accept() 0 3 1
A decline() 0 3 1
A __construct() 0 3 1
A list() 0 3 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace DigitalCz\DigiSign\Endpoint;
6
7
use DigitalCz\DigiSign\Endpoint\Traits\CreateEndpointTrait;
8
use DigitalCz\DigiSign\Resource\Collection;
9
use DigitalCz\DigiSign\Resource\MyAccount;
10
11
/**
12
 * @extends ResourceEndpoint<MyAccount>
13
 * @method MyAccount create(array $body)
14
 */
15
final class MyAccountsEndpoint extends ResourceEndpoint
16
{
17
    use CreateEndpointTrait;
18
19
    public function __construct(MyEndpoint $parent)
20
    {
21
        parent::__construct($parent, '/accounts', MyAccount::class);
22
    }
23
24
    /**
25
     * @return Collection<MyAccount>
26
     */
27
    public function list(): Collection
28
    {
29
        return new Collection($this->parseResponse($this->getRequest()));
30
    }
31
32
    public function accept(string $id): MyAccount
33
    {
34
        return $this->makeResource($this->postRequest('/{id}/accept', ['id' => $id]));
0 ignored issues
show
Bug Best Practice introduced by
The expression return $this->makeResour...', array('id' => $id))) returns the type DigitalCz\DigiSign\Resource\ResourceInterface which includes types incompatible with the type-hinted return DigitalCz\DigiSign\Resource\MyAccount.
Loading history...
35
    }
36
37
    public function decline(string $id): void
38
    {
39
        $this->postRequest('/{id}/decline', ['id' => $id]);
40
    }
41
}
42