Completed
Push — master ( 3f7c36...9787b3 )
by Paweł
03:09
created

AbstractApiClient::getAuthenticationRetryAttempt()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
3
/**
4
 * This file is part of the PHP SDK library for the Superdesk Content API.
5
 *
6
 * Copyright 2015 Sourcefabric z.u. and contributors.
7
 *
8
 * For the full copyright and license information, please see the
9
 * AUTHORS and LICENSE files distributed with this source code.
10
 *
11
 * @copyright 2015 Sourcefabric z.ú.
12
 * @license http://www.superdesk.org/license
13
 */
14
15
namespace Superdesk\ContentApiSdk\Client;
16
17
use Superdesk\ContentApiSdk\API\Authentication\AuthenticationInterface;
18
19
/**
20
 * Abstract for api clients.
21
 */
22
abstract class AbstractApiClient implements ApiClientInterface
23
{
24
    const MAX_RETRY_LIMIT = 3;
25
26
    /**
27
     * HTTP client.
28
     *
29
     * @var ClientInterface
30
     */
31
    protected $client;
32
33
    /**
34
     * Authentication object.
35
     *
36
     * @var AuthenticationInterface
37
     */
38
    protected $authenticator;
39
40
    /**
41
     * Retry attempt counter for authentication.
42
     *
43
     * @var int
44
     */
45
    protected $authenticationRetryAttempt = 0;
46
47
    /**
48
     * {@inheritdoc}
49
     */
50
    public function __construct(
51
        ClientInterface $client,
52
        AuthenticationInterface $authenticator
53
    ) {
54
        $this->client = $client;
55
        $this->authenticator = $authenticator;
56
    }
57
58
    /**
59
     * Sets authentication retry limit to 0.
60
     *
61
     * @return void
62
     */
63
    protected function resetAuthenticationRetryAttempt()
64
    {
65
        $this->authenticationRetryAttempt = 0;
66
67
        return;
68
    }
69
70
    /**
71
     * Increments the authentication retry attempt with 1.
72
     *
73
     * @return void
74
     */
75
    protected function incrementAuthenticationRetryAttempt()
76
    {
77
        $this->authenticationRetryAttempt++;
78
79
        return;
80
    }
81
82
    /**
83
     * Returns authentication retry count.
84
     *
85
     * @return int
86
     */
87
    public function getAuthenticationRetryAttempt()
88
    {
89
        return $this->authenticationRetryAttempt;
90
    }
91
92
    /**
93
     * Returns whether the authentication limit is reached.
94
     *
95
     * @return boolean
96
     */
97
    protected function isAuthenticationRetryLimitReached()
98
    {
99
        return $this->getAuthenticationRetryAttempt() > self::MAX_RETRY_LIMIT;
100
    }
101
}
102