Completed
Push — master ( 95c389...a0b8be )
by Illia
05:23 queued 02:53
created

EloquaProvider::getDefaultHeaders()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
crap 1
1
<?php
2
3
namespace Permiakov\OAuth2\Client\Provider;
4
5
use League\OAuth2\Client\Provider\Exception\IdentityProviderException;
6
use League\OAuth2\Client\Tool\BearerAuthorizationTrait;
7
use Psr\Http\Message\ResponseInterface;
8
use League\OAuth2\Client\Provider\AbstractProvider;
9
use League\OAuth2\Client\Token\AccessToken;
10
11
class EloquaProvider extends AbstractProvider
12
{
13
    use BearerAuthorizationTrait;
14
15
    /**
16
     * @return string
17
     */
18 1
    public function getBaseAuthorizationUrl()
19
    {
20 1
        return 'https://login.eloqua.com/auth/oauth2/authorize';
21
    }
22
23
    /**
24
     * @param array $params
25
     * @return string
26
     */
27 1
    public function getBaseAccessTokenUrl(array $params)
28
    {
29 1
        return 'https://login.eloqua.com/auth/oauth2/token';
30
    }
31
32
    /**
33
     * @param AccessToken $token
34
     * @return string
35
     */
36 1
    public function getResourceOwnerDetailsUrl(AccessToken $token)
37
    {
38 1
        return 'https://login.eloqua.com/id';
39
    }
40
41
    /**
42
     * @return array
43
     */
44 1
    protected function getDefaultScopes()
45
    {
46 1
        return array('full');
47
    }
48
49
    /**
50
     * Authorization and access tokens requests have to be signed with basic auth header
51
     * @return array
52
     */
53 1
    protected function getDefaultHeaders()
54
    {
55 1
        return array('Authorization' => 'Basic ' . base64_encode($this->clientId . ':' . $this->clientSecret));
56
    }
57
58
    /**
59
     * @param ResponseInterface $response
60
     * @param array|string $data
61
     * @throws IdentityProviderException
62
     */
63 3
    protected function checkResponse(ResponseInterface $response, $data)
64
    {
65 3
        $statusCode = $response->getStatusCode();
66 3
        if (($statusCode < 200 || $statusCode >= 300) || isset($data['error'])) {
67 3
            $message = 'Eloqua response error';
68 3
            if (isset($data['error'])) {
69 1
                $message = sprintf(
70 1
                    'Error: %s. Description: %s',
71 1
                    $data['error'],
72 1
                    $data['error_description']
73 1
                );
74 1
            }
75 3
            throw new IdentityProviderException(
76 3
                $message,
77 3
                $statusCode,
78 3
                $response->getBody()
79 3
            );
80
        }
81
    }
82
83
    /**
84
     * @param array $response
85
     * @param AccessToken $token
86
     * @return EloquaResourceOwner
87
     */
88 1
    protected function createResourceOwner(array $response, AccessToken $token)
89
    {
90 1
        $owner = $this->getEloquaResourceOwnerPrototype();
91
92 1
        return $owner->exchangeArray($response);
93
    }
94
95
    /**
96
     * @return EloquaResourceOwner
97
     */
98 1
    protected function getEloquaResourceOwnerPrototype()
99
    {
100 1
        return new EloquaResourceOwner();
101
    }
102
}
103