Passed
Branch master (b73fcd)
by Thomas
02:06
created

ZohoOAuthHTTPConnector   A

Complexity

Total Complexity 13

Size/Duplication

Total Lines 103
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 13
eloc 54
c 1
b 0
f 0
dl 0
loc 103
rs 10
1
<?php
2
namespace Zoho\OAuth\Utility;
3
4
class ZohoOAuthHTTPConnector
5
{
6
7
    private $url;
8
9
    private $requestParams = [];
10
11
    private $requestHeaders = [];
12
13
    private $requestParamCount = 0;
14
15
    public function post()
16
    {
17
        $curl_pointer = curl_init();
18
        curl_setopt($curl_pointer, CURLOPT_URL, self::getUrl());
19
        curl_setopt($curl_pointer, CURLOPT_HEADER, 1);
20
        curl_setopt($curl_pointer, CURLOPT_POSTFIELDS, self::getUrlParamsAsString($this->requestParams));
21
        curl_setopt($curl_pointer, CURLOPT_RETURNTRANSFER, true);
22
        curl_setopt($curl_pointer, CURLOPT_USERAGENT,
23
            'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
24
        curl_setopt($curl_pointer, CURLOPT_HTTPHEADER, self::getRequestHeadersAsArray());
25
        curl_setopt($curl_pointer, CURLOPT_POST, $this->requestParamCount);
26
        curl_setopt($curl_pointer, CURLOPT_CUSTOMREQUEST, ZohoOAuthConstants::REQUEST_METHOD_POST);
27
        $result = curl_exec($curl_pointer);
28
        curl_close($curl_pointer);
29
30
        return $result;
31
    }
32
33
    public function getUrl()
34
    {
35
        return $this->url;
36
    }
37
38
    public function setUrl($url)
39
    {
40
        $this->url = $url;
41
    }
42
43
    public function getUrlParamsAsString($urlParams)
44
    {
45
        $params_as_string = "";
46
        foreach ($urlParams as $key => $valueArray) {
47
            foreach ($valueArray as $value) {
48
                $params_as_string = $params_as_string . $key . "=" . $value . "&";
49
                $this->requestParamCount++;
50
            }
51
        }
52
        $params_as_string = rtrim($params_as_string, "&");
53
        $params_as_string = str_replace(PHP_EOL, '', $params_as_string);
54
55
        return $params_as_string;
56
    }
57
58
    public function getRequestHeadersAsArray()
59
    {
60
        $headersArray = [];
61
        $headersMap = self::getRequestHeadersMap();
62
        foreach ($headersMap as $key => $value) {
63
            $headersArray[] = $key . ":" . $value;
64
        }
65
66
        return $headersArray;
67
    }
68
69
    public function getRequestHeadersMap()
70
    {
71
        return $this->requestHeaders;
72
    }
73
74
    public function get()
75
    {
76
        $curl_pointer = curl_init();
77
        $url = self::getUrl() . "?" . http_build_query($this->requestParams);
78
        curl_setopt($curl_pointer, CURLOPT_URL, $url);
79
        curl_setopt($curl_pointer, CURLOPT_HEADER, 1);
80
        curl_setopt($curl_pointer, CURLOPT_RETURNTRANSFER, true);
81
        curl_setopt($curl_pointer, CURLOPT_HTTPHEADER, self::getRequestHeadersAsArray());
82
        curl_setopt($curl_pointer, CURLOPT_USERAGENT,
83
            'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
84
        curl_setopt($curl_pointer, CURLOPT_CUSTOMREQUEST, ZohoOAuthConstants::REQUEST_METHOD_GET);
85
        $result = curl_exec($curl_pointer);
86
        curl_close($curl_pointer);
87
88
        return $result;
89
    }
90
91
    public function addParam($key, $value)
92
    {
93
        if (!isset($this->requestParams[$key])) {
94
            $this->requestParams[$key] = [
95
                $value,
96
            ];
97
        } else {
98
            $valArray = $this->requestParams[$key];
99
            array_push($valArray, $value);
100
            $this->requestParams[$key] = $valArray;
101
        }
102
    }
103
104
    public function addHeadder($key, $value)
105
    {
106
        $this->requestHeaders[$key] = $value;
107
    }
108
}