Passed
Pull Request — 1.x (#62)
by Pavel
02:02
created

AccountEndpoint::users()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 1
c 1
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 get(): Account
60
    {
61
        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...
62
    }
63
64
    /**
65
     * @param mixed[] $query
66
     * @return ListResource<AccountSmsLog>
67
     */
68
    public function smsLog(array $query = []): ListResource
69
    {
70
        return $this->createListResource($this->getRequest('/sms-log', ['query' => $query]), AccountSmsLog::class);
71
    }
72
73
    /**
74
     * @param mixed[] $query
75
     */
76
    public function statistics(array $query = []): AccountStatistics
77
    {
78
        return $this->createResource(
79
            $this->getRequest('/statistics', ['query' => $query]),
80
            AccountStatistics::class
81
        );
82
    }
83
84
    public function billing(): AccountBilling
85
    {
86
        return $this->createResource($this->getRequest('/billing'), AccountBilling::class);
87
    }
88
}
89