GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — master ( a445f1...b2ee95 )
by Jérémy
01:44
created

Response::sendContentLengthHeaders()   A

Complexity

Conditions 4
Paths 8

Size

Total Lines 16
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 16
rs 9.2
cc 4
eloc 8
nc 8
nop 0
1
<?php
2
3
namespace CapMousse\ReactRestify\Http;
4
5
use React\Http\Response as HttpResponse;
6
7
class Response
8
{
9
    /**
10
     * @var \React\Http\Response
11
     */
12
    private $httpResponse;
13
14
    private $server;
15
    private $version;
16
17
    /**
18
     * Status code of the response
19
     * @var int
20
     */
21
    private $status = 200;
22
23
    /**
24
     * Array of headers to send
25
     * @var array
26
     */
27
    private $headers = [];
28
29
    /**
30
     * The content-length
31
     * @var int
32
     */
33
    private $contentLength = 0;
34
35
    /**
36
     * Data to send
37
     * @var string
38
     */
39
    private $data;
40
41
    /**
42
     * Check if headers are already sent
43
     * @var bool
44
     */
45
    private $headersSent = false;
46
47
    /**
48
     * Create a new Restify/Response object
49
     *
50
     * @param \React\Http\Response $response
51
     *
52
     */
53
    public function __construct(HttpResponse $response, $server = null, $version = null)
54
    {
55
        $this->httpResponse = $response;
56
        $this->server = $server;
57
        $this->version = $version;
58
    }
59
60
    /**
61
     * Add a header to the response
62
     *
63
     * @param string $name
64
     * @param string $value
65
     *
66
     * @return Response
67
     */
68
    public function addHeader($name, $value)
69
    {
70
        $this->headers[$name] = $value;
71
72
        return $this;
73
    }
74
75
    /**
76
     * Set the status code of the response
77
     *
78
     * @param int $code
79
     * @return Response
80
     */
81
    public function setStatus($code)
82
    {
83
        $this->status = $code;
84
85
        return $this;
86
    }
87
88
    /**
89
     * is the response writable ?
90
     *
91
     * @return boolean
92
     */
93
    public function isWritable()
94
    {
95
        return $this->httpResponse->isWritable();
96
    }
97
98
    /**
99
     * Write a HTTP 100 (continue) header
100
     * 
101
     * @return Reponse
102
     */
103
    public function writeContinue()
104
    {
105
        $this->httpResponse->writeContinue();
106
107
        return $this;
108
    }
109
110
    /**
111
     * Write data to the response
112
     *
113
     * @param string $data
114
     * @return Reponse
115
     */
116
    public function write($data)
117
    {
118
        $this->contentLength += strlen($data);
119
        $this->data .= $data;
120
121
        return $this;
122
    }
123
124
    /**
125
     * Write json to the response
126
     *
127
     * @param mixed $data
128
     * @return Reponse
129
     */
130
    public function writeJson($data)
131
    {
132
        $data = json_encode($data);
133
134
        $this->write($data);
135
        $this->addHeader("Content-Type", "application/json");
136
137
        return $this;
138
    }
139
140
    /**
141
     * Empty current response
142
     * 
143
     * @return Reponse
144
     */
145
    public function reset()
146
    {
147
        $this->contentLength = 0;
148
        $this->data = "";
149
        $this->headers = [];
150
        $this->status = 200;
151
152
        return $this;
153
    }
154
155
    /**
156
     * End the connexion
157
     */
158
    public function end()
159
    {
160
        $this->sendHeaders();
161
        $this->httpResponse->write($this->data);
162
        $this->httpResponse->end();
163
    }
164
165
    /**
166
     * Close the connexion
167
     */
168
    public function close()
169
    {
170
        $this->sendHeaders();
171
        $this->httpResponse->write($this->data);
172
        $this->httpResponse->close();
173
    }
174
175
    /**
176
     * Send all headers to the response
177
     */
178
    public function sendHeaders()
179
    {
180
        if ($this->headersSent) {
181
            return;
182
        }
183
184
        if (!isset($this->headers["Content-Length"])) {
185
            $this->sendContentLengthHeaders();
186
        }
187
188
        $this->httpResponse->writeHead($this->status, $this->headers);
189
        $this->headersSent = true;
190
    }
191
192
    public function sendContentLengthHeaders()
193
    {
194
        $this->addHeader("Content-Length", $this->contentLength);
195
196
        if (null !== $this->server) {
197
            $this->addHeader("Server", $this->server);
198
        }
199
200
        if (null !== $this->version) {
201
            $this->addHeader("Server-Version", $this->version);
202
        }
203
204
        if (!isset($this->headers["Content-Type"])) {
205
            $this->addHeader("Content-Type", "text/plain");
206
        }
207
    }
208
}
209