Passed
Pull Request — 1.x (#74)
by Pavel
11:54
created

AccountEndpoint::certificates()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 1
c 0
b 0
f 0
dl 0
loc 3
rs 10
cc 1
nc 1
nop 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace DigitalCz\DigiSign\Endpoint;
6
7
use DigitalCz\DigiSign\DigiSign;
8
use DigitalCz\DigiSign\Resource\Account;
9
use DigitalCz\DigiSign\Resource\AccountBilling;
10
use DigitalCz\DigiSign\Resource\AccountSmsLog;
11
use DigitalCz\DigiSign\Resource\AccountStatistics;
12
use DigitalCz\DigiSign\Resource\ListResource;
13
14
/**
15
 * @extends ResourceEndpoint<Account>
16
 */
17
final class AccountEndpoint extends ResourceEndpoint
18
{
19
    public function __construct(DigiSign $parent)
20
    {
21
        parent::__construct($parent, '/api/account', Account::class);
22
    }
23
24
    public function me(): AccountMeEndpoint
25
    {
26
        return new AccountMeEndpoint($this);
27
    }
28
29
    public function settings(): AccountSettingsEndpoint
30
    {
31
        return new AccountSettingsEndpoint($this);
32
    }
33
34
    public function security(): AccountSecurityEndpoint
35
    {
36
        return new AccountSecurityEndpoint($this);
37
    }
38
39
    public function requests(): AccountRequestsEndpoint
40
    {
41
        return new AccountRequestsEndpoint($this);
42
    }
43
44
    public function envelopeTemplate(): AccountEnvelopeTemplateEndpoint
45
    {
46
        return new AccountEnvelopeTemplateEndpoint($this);
47
    }
48
49
    public function apiKeys(): AccountApiKeysEndpoint
50
    {
51
        return new AccountApiKeysEndpoint($this);
52
    }
53
54
    public function users(): AccountUsersEndpoint
55
    {
56
        return new AccountUsersEndpoint($this);
57
    }
58
59
    public function certificates(): AccountCertificatesEndpoint
60
    {
61
        return new AccountCertificatesEndpoint($this);
62
    }
63
64
    public function get(): Account
65
    {
66
        return $this->makeResource($this->getRequest());
0 ignored issues
show
Bug Best Practice introduced by
The expression return $this->makeResource($this->getRequest()) returns the type DigitalCz\DigiSign\Resource\ResourceInterface which includes types incompatible with the type-hinted return DigitalCz\DigiSign\Resource\Account.
Loading history...
67
    }
68
69
    /**
70
     * @param mixed[] $query
71
     * @return ListResource<AccountSmsLog>
72
     */
73
    public function smsLog(array $query = []): ListResource
74
    {
75
        return $this->createListResource($this->getRequest('/sms-log', ['query' => $query]), AccountSmsLog::class);
76
    }
77
78
    /**
79
     * @param mixed[] $query
80
     */
81
    public function statistics(array $query = []): AccountStatistics
82
    {
83
        return $this->createResource(
84
            $this->getRequest('/statistics', ['query' => $query]),
85
            AccountStatistics::class
86
        );
87
    }
88
89
    public function billing(): AccountBilling
90
    {
91
        return $this->createResource($this->getRequest('/billing'), AccountBilling::class);
92
    }
93
}
94